自动滚屏采集瀑布流网页—以今日头条新闻为例

2021-3-11 11:56| 发布者: Fuller| 查看: 12463| 评论: 0

摘要: 常见的网页大多数在页面下方会有翻页的按钮,比如“下一页”、“加载更多”,这类网页设置翻页就可以搞定,但是瀑布流网页没有这些按钮,而是随着鼠标滚动会不停的加载更多内容,变成很长的、没有底的网页。爬虫只能 ...

配套软件版本:V10及更高 数据管家——增强版网络爬虫

老版本对应教程:V9及更低 集搜客网络爬虫 的对应教程是《连续动作:滚屏采集瀑布流网页——以头条新闻为例


常见的网页大多数在页面下方会有翻页的按钮,比如“下一页”、“加载更多”,这类网页设置翻页就可以搞定,

但是瀑布流网页没有这些按钮,而是随着鼠标滚动会不停的加载更多内容,变成很长的、没有底的网页。

爬虫只能采集网页上已经加载显示的内容,而瀑布流网页的内容不是一次性加载的,每滚屏一次才会显示更多的内容,所以采集瀑布流网页需要用到滚屏动作。

Tips:本文讲解的滚屏动作和滚轮动作是有区别的,滚屏相当于滚动网页最右边的滚动条;而滚轮是仿真鼠标轮子的滚动,所以滚轮动作可以实现一些特殊需求,比如:

•    网页内部局部区域的滚动条

•    翻页无法激发加载的网页只能用滚轮仿真


下面用今日头条作为案例,演示如何设置自动滚屏动作来采集瀑布流网页。

样本网址:http://www.toutiao.com/

采集任务:今日头条_瀑布流教程 (可点击下载)

采集内容:每一条新闻的新闻标题、评论数、发布时间、链接


1. 打开网页


2. 标注要采集的内容

在第一条新闻上,逐个点击要采集的内容,比如新闻标题、评论数、发布时间,在弹出的蓝色小窗内,输入字段名字,第一个字段,还要输入表名。详细的操作见《采集网页数据》。新闻详情网址,要在下面的DOM节点做内容映射。详细的操作见《内容映射采集链接》。

第一条新闻标注完成后,左侧工作台上的采集字段如下图。


3. 样例复制

刚才我们只标注了第一条新闻的抓取字段,怎么批量抓页面上的多条新闻?要做样例复制,第一条新闻是样例1,第二条新闻是样例2,这样爬虫就知道了,要批量抓一条条新闻。详细的的样例复制操作见《采集列表数据》。

因为篇幅的关系,这篇教程主要讲解滚屏操作,所以上面的这两步都没有仔细讲解。上面提到的《采集网页数据》和《采集列表数据》是初级教程里开始的两篇教程,我们希望用户按这两篇教程做了标注和样例复制后,再按下面的步骤来进行滚屏操作。

4. 滚屏设置

点击工作台上第4个页签,进入连续动作设置。


动作后执行:滚屏操作后,网页结构没有变化,还是用原来的采集任务,所以动作后执行填写 “今日头条_瀑布流教程”

动作类型:选择滚屏

每次滚屏次数:每次执行滚屏动作,浏览器往下翻多少屏。

总共滚屏数:执行滚屏操作的次数,达到总共滚屏数就会停止滚屏,-1表示无限制。总滚屏数越多,越向下翻,新闻越陈旧,可能是几天以前的新闻,没有什么价值了。所以本例中总滚屏数选择30。注意,对于有些网页来说,可能想采集尽可能多的内容,这时滚屏数可选择-1。

5. 清除老数据

在滚屏采集中,每滚一次屏,就要执行一次采集任务,把整个网页从头到尾采集一次,所以会有很多重复的采集。为了避免这种情况,需要清除老数据。

在本例中,可以看到每条新闻都对应这样的一个div,当滚到下一屏的时候,如果把前面抓取过的div删除,采集就不会重复了。

要删除这些div,首先需要构造一个xpath,定位到所有这些div。


观察一下,发现这些div的class属性里都包含mode,按照xpath语法,可以写成//div[contains(@class,"mode")]。按下面图中的步骤,把它复制到xpath栏,并且搜索一下,看看定位到了哪些节点。

我们看到这个xpath除了定位到每条新闻外,还定位到了一些非新闻的位置。所以需要对它改造一下,使它只定位到各条新闻的位置。

找到这些新闻div节点的上层div节点,测试一下它的xpath路径。这个div的xpath只定位到了一个节点,说明这个xpath是唯一的,所以可以用它来帮着定位下级的div节点。


把刚才手写的 div[contains(@class,"mode")]复制到后面。搜索一下,发现这个xpath能够定位到各个新闻位置。



把上面的xpath拷贝下来,复制到高级设置的清除老数据。


6. 关掉爬虫的滚屏

因为已经设置了滚屏工作,所以要把爬虫的滚屏关掉。而且还要设置重复内容中断。


7. 测试、保存任务

测试,没有问题,保存任务。


8. 启动采集

然后可以点击“保存”按钮旁边的“采数据”按钮,采集数据。或者到任务管理页面取去启动采集。数据采集完成后,按提示,点击导出excel。

启动采集的详细操作过程可以参考《启动采集》。

本案例采集下来的数据截图:


上篇文章:《自动点击京东商品价格条件,智能采集价格数据》    下篇文章:《鼠标悬停信息采集-以淘宝店铺动态评分为例

4

鲜花
1

握手

雷人

路过

鸡蛋

刚表态过的朋友 (5 人)

最新评论

GMT+8, 2024-10-13 08:18