爬wish等瀑布流网站时使用清除老数据功能

2017-9-29 18:30| 发布者: Fuller| 查看: 14142| 评论: 0

摘要: 一、使用原因像wish网站、知乎首页,这类网页都是无限瀑布流网站,鼠标滚轮往下滚动,永远滚不到底,内容越来越多。如果让爬虫不断执行连续动作的滚屏或者滚轮动作(旗舰版才有),那么执行到一定次数以后,就会内存 ...

一、使用原因

像wish网站、知乎首页,这类网页都是无限瀑布流网站,鼠标滚轮往下滚动,永远滚不到底,内容越来越多。如果让爬虫不断执行连续动作的滚屏或者滚轮动作(旗舰版才有),那么执行到一定次数以后,就会内存耗用完。

为了解决这个问题,引入清除老数据的功能。这个功能从V8.3.1版本开始提供。

适用的连续动作类型有:

二、设置方法

以知乎为例,如下图:

可以看到每个内容条目都对应这样的一个div,当滚到下一屏的时候,前面已经抓取过的div应该删除,那么应该构造一个xpath,定位到所有的这些div。这个xpath不用手工编写,而是如下图这样自动生成

选中一个这样的div,选择显示XPath菜单,我们可以选择偏好class,生成的xpath显示在右边的输入框中。如果要检验这个xpath是否能定位到所有内容条目,点击最右边的“搜索”按钮,可以看到发现了20个节点,说明这个xpath合适。请注意:这个xpath必须能定位到所有要删除的内容。

接下来要将这个xpath设置给滚屏动作,如下图:

点击高级设置,在“清除老数据”输入框中把这个xpath拷贝进来。保存规则,清除功能就设置完成。

三、进一步说明

每次清除的时候并没有清除掉所有的内容,保留了第一条和最后一条,因为这样可以防止清除操作干扰原网页上的程序。所以,在整理结果数据的时候,第一条和最后一条就变成了重复数据,注意把重复数据删除。

1

鲜花

握手

雷人

路过
2

鸡蛋

刚表态过的朋友 (3 人)

最新评论

GMT+8, 2024-3-29 06:27