该项目提供提链服务,使用http+json与外界交互,灵活配置工作线程数量,使用简单方便。
make build
extractor-server run -c examples/extractor-server.yaml
建议将工作线程数配置为 cpu核数-1
| 参数 | 含义 | 类型 | 是否必需 |
|---|---|---|---|
| worker.number | 工作线程数 | int | 默认工作线程数为4 |
| queue.number | 队列中缓存请求数量 | int | 默认为4000,请求数量过多会返回429错误码 |
| http.addr | 地址和端口 | string | 默认端口7890 |
- 正则提链
- css提链
- xpath提链
- 只提取本站
- 自动去除锚点
- 提链黑白名单(domain, pattern)
- 支持xml、html格式文本
- 适配多种编码方式
- 默认提取html、htm、无后缀 链接
http+json
| 参数 | 含义 | 类型 | 是否必需 |
|---|---|---|---|
| URL | 请求url | string | Y |
| ContentType | http header中的ContentType | string | Y |
| Content | 需要提链的页面 | string,使用base64编码 | Y |
| OnlyHomeSite | 是否只提取本站 | bool(false) | N |
| IfRegexp | 是否使用正则提链 | bool(false) | N |
| CSSSelectors | css提链规则 | string[] | N |
| XPathQuerys | xpath提链规则 | string[] | N |
| AllowedDomains | domain白名单 | string[] | N |
| DisallowedDomains | domain黑名单 | string[] | N |
| AllowedURLFilters | pattern黑名单 | string[] | N |
| DisallowedURLFilters | pattern黑名单 | string[] | N |
| AllowedExts | 被允许的后缀 | string[] | N |
| 参数 | 含义 | 类型 |
|---|---|---|
| re | 正则提链结果 | string[] |
| xpath | xpath提链结果 | string[] |
| css | css提链结果 | string[] |
非正则提链快于正则提链
测试页面 https://www.sohu.com/ 单请求平均耗时与客户端数量/工作线程数成正相关
| 客户端数量/请求总量 | 工作线程数 | qps | 单请求平均耗时 |
|---|---|---|---|
| 100/10000 | 1 | 123.2335 | 0.8072 secs |
| 100/10000 | 4 | 316.2894 | 0.3145 secs |
- 抽取器
MIT licensed.