|
@@ -16,7 +16,7 @@
|
|
|
|
|
|
* 页面预处理,可以在爬虫获取返回html后先处理页面html,然后再接下去用选择器获取去页面数据,比如有些页面是404,此404是一张图片,如果是直接传下去给选择器,那么会报错缺少字段,如果是预处理时就判断是否404图片,那么直接返回当做抓取成功不会进入选择器。$html, $, page,_task, JTool, Tool 这几个变量可以直接使用,在爬虫内部定义如下:
|
|
|
|
|
|
-```
|
|
|
+```js
|
|
|
async _preprocess(content, page) {
|
|
|
if (this.rule.data_type === 'json') {
|
|
|
content = content.trim();
|
|
@@ -62,7 +62,7 @@
|
|
|
|
|
|
* 选择器:查找页面元素并返回
|
|
|
* 解析$el:上面选择器获取的节点元素,返回的变量用 $el 表示,和jquery操作节点元素一致
|
|
|
-```
|
|
|
+```js
|
|
|
可用变量如下
|
|
|
_task:任务对象,[ 'url', 'rule_id', 'task_id', 'task_key' ]
|
|
|
JTool.fixColspan($table, $): 展开表格colspan,删除不合法的列
|
|
@@ -74,7 +74,7 @@ JTool.md5(str): md5加密
|
|
|
```
|
|
|
* Next规则id:指定当爬取玩此规则后进入的下一个规则,可以设置上下文逻辑,比如列表页面的下一个规则应该是详情页
|
|
|
* 选择 单项/多项:如果是爬取的数据是多行的则选择多项,如果是只有一项那么选择单项。这里插入的逻辑是,如果是多项的取各个列名字段相同下标的数据处理组成一条数据记录插入数据库例如:
|
|
|
-```
|
|
|
+```js
|
|
|
a 列名:选择多项获取到的是一个数组 ['a', 'b', 'c']
|
|
|
b 列名:选择多项获取到的是一个数组 ['d', 'e', 'f']
|
|
|
|
|
@@ -93,27 +93,27 @@ b 列名:选择多项获取到的是一个数组 ['d', 'e', 'f']
|
|
|
#配置库表
|
|
|
>爬虫的数据库表从名字服务器内的配置拉取到表 db_table,data_db中,这里需要注意的是,当名字服务器发布新的数据库配置后,需要重启node进程才能让爬虫的配置生效
|
|
|
|
|
|
-![图片](/img/图4-3.jpg)
|
|
|
-![图片](/img/图4-2.jpg)
|
|
|
+![图片](../img/图4-3.jpg)
|
|
|
+![图片](../img/图4-2.jpg)
|
|
|
|
|
|
---
|
|
|
|
|
|
#任务
|
|
|
>当规则添加后,需要配置任务,爬虫才能进行入库
|
|
|
|
|
|
-![图片](/img/图4-1.jpg)
|
|
|
+![图片](../img/图4-1.jpg)
|
|
|
* 爬虫的地址:指的爬虫的初始入口url,爬虫任务根据此url,开始爬取,如果你配置了Next规则id,那么爬虫当爬取完此规则后会自动进入下一规则,这样就实现了上下问逻辑的网页爬取
|
|
|
|
|
|
当添加完任务后还可以在网页上尝试点击执行,网页返回的是此任务执行期间的打印的日志
|
|
|
-![图片](/img/图4-4.jpg)
|
|
|
-![图片](/img/图4-7.jpg)
|
|
|
+![图片](../img/图4-4.jpg)
|
|
|
+![图片](../img/图4-7.jpg)
|
|
|
|
|
|
---
|
|
|
|
|
|
#调试
|
|
|
>通过日志和网页运行爬取任务可以调试一个规则是否有报错
|
|
|
|
|
|
-![图片](/img/图4-6.jpg)
|
|
|
-![图片](/img/图4-5.jpg)
|
|
|
+![图片](../img/图4-6.jpg)
|
|
|
+![图片](../img/图4-5.jpg)
|
|
|
|
|
|
|