自动输入关键词采集搜索结果信息—以人民网搜索为例

2021-2-7 18:12| 发布者: Fuller| 查看: 13341| 评论: 5

摘要: 如果网页上有搜索框,但是搜索结果页面没有独立网址,想要采集搜索结果,直接做采集任务是采集不到的,要先做连续动作(输入+点击)来实现自动输入关键词并搜索,然后才能采集数据。下面以人民网关键词搜索为例,演 ...

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

老版本对应教程:V9及更低 集搜客网络爬虫 的对应教程是《连续动作:自动搜索关键词采集信息—以京东为例


如果网页上有搜索框,但是搜索结果页面没有独立网址,想要采集搜索结果,直接做采集任务是采集不到的,要先做连续动作(输入+点击)来实现自动输入关键词并搜索,然后才能采集数据。下面以人民网关键词搜索为例,演示自动搜索采集,操作步骤如下:

提示:连续动作的任务一般是需要做两级任务,第一级任务负责执行动作,比如输入关键词和点击搜索,第二级任务来采集搜索出来的内容。


案例任务:

第一级采集任务:教程_人民网搜索_动作(点击下载)

第二级采集任务:教程_人民网搜索_抓取(点击下载)

样本网址:http://search.people.com.cn/cnpeople/news/index.html

采集内容:新闻链接,标题、摘要、时间


下面进入详细的步骤说明。

1. 定义第一级任务:设置动作

1.1 打开网页

打开集搜客数据管家,输入人民网搜索网址http://search.people.com.cn/cnpeople/news/index.html,加载网页。点击浏览器左上侧“+”,并进入定义任务状态。


1.2 随便标注一个要采集的内容

虽然第一级任务不做实际抓取工作,但是为了爬虫正常工作,任务里需要有至少一个抓取内容,我们就把网页上的“新闻”这两个字作为抓取内容。

双击“新闻”,按下图输入字段名和表名。(直观标注的详细操作可以参考《采集网页数据》)


1.3 设置动作

这里重点讲解第一个“输入”的动作,第二个动作“点击”略讲。

1.3.1 第一个动作:输入动作

点击工作台的 “4”,进入“设置动作”,点击“新建”按钮建立一个新动作。


动作后执行:目标任务就是第二级任务,本例中第二级任务的名字是:教程_人民网搜索_抓取

动作类型:第一个动作是输入,所以选择输入

动作名称:给动作起个名字,便于以后检查,比如:输入

交互位置:这是操作难点,要把动作位置的xpath找出来,复制拷贝在这里。这样爬虫就知道去哪里进行动作了。怎样找到动作的xpath?

我们现在要做的是输入动作,交互位置就是搜索输入框,在网页上点击它,下面的DOM窗口对应到一个节点。

按下图操作,点击“生成xpath”,因为这个节点有很特殊的id属性,所以选择偏id。



生成xpath后,点击xpath后面的搜索按钮,看看这个xpath对应到几个节点,在本例中是1/1,说明只对应到一个节点,是唯一的,可以用来确定动作的位置。(如果是1/2,那说明对应到两个节点,当前节点是其中之一,但是本例中我们需要做输入动作的位置只有一个,说明这个xpath是不适合的,需要另外选取)。确定了xpath后,复制拷贝到动作设置。


输入词语:输入要搜索的关键词,比如输入:病毒;;种族,表示先采集病毒的新闻,再采集种族的新闻。

延迟:考虑到网页加载需要时间,最好设置一点延迟时间,这个网页的加载比较快,可以设置5s。

第一个动作,输入动作设置完成后,工作台上是这样的:

1.3.2 设置第二个动作:点击动作

点击新建,设置第二个动作:点击动作


怎么找到搜索点击动作的xpath ?



点击动作设置完成后,工作台是这样的:

这样,我们就完成了两个动作的设置,完成了第一级任务。

1.3.3 第一级任务测试,保存

下图不是本例的图,但是按钮的位置是一样的。


点击“保存”按钮保存已完成的第一级任务

现在,只保存第一级任务,不要启动采集,因为我们还没有做第二级任务。

2. 退出第一级任务定义状态

在定义第二级任务之前,首先要退出第一级任务定义状态。


3.定义第二级任务

3.1 加载网页,进入定义任务状态

在网页上输入关键词,并且搜索结果出来后,再次点击“+”进入到定义任务模式。 

 输入任务名,就是第一级任务的动作设置里填写的动作后执行的任务: 教程_人民网搜索_抓取。


3.2 对着网页做采集任务

在这个网页上每条新闻是一个样例,在每个样例中,要采集的信息有:标题,内容提要,链接,时间。限于篇幅,这里就不讲解了,可以参见教程《采集列表数据》,每条新闻,相当于这个教程里的一个商品。如果还要做翻页,参看教程《翻页设置》。如果还要进一步,采集新闻详细内容,参看教程《深层采集》。

第二级任务完成后,测试,保存。


4.启动采集

连续动作的任务采集,只用启动第一级任务就可以了,爬虫会自动调用第二级任务。

首先,到任务管理页面。


在任务管理页面,选中第一级任务,点击启动,线索数是1(因为本例中第一级任务只有1条线索),为了尽快结束采集,拿到采集结果,限制了翻页,只采集5页。


上图点击确定后,爬虫弹出采集窗口,开始采集数据。可以观察到,在采集窗口,自动加载搜索词和点击搜索,自动加载出搜索结果页面,并在这个页面上采集数据。

采集完成后,按提示点击导出excel数据,然后到第二级任务的数据管理去下载数据。  


所以,这个过程是,启动第一级任务,到第二级任务去下载数据。

下图是采集下来的数据截图。搜索的关键词是默认记录在第二级任务结果数据中的actionvalue字段中。


上篇文章:《集搜客网络爬虫的核心名词》                           下篇文章:《自动点击京东商品规格采集价格数据 


鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

评论 gz51837844 2024-3-5 09:35
”精确搜索”的框在哪里?我在人民网搜索页面上没看到
hz4011: 在人民网的这个案例中,如果我想将结果限制在“精确搜索”中(需要点击“精确搜索”的框)该怎么做呢?我尝试设置了一个点击该处的动作,但在运行中每次都会爬两 ...
评论 wangyong 2024-3-5 09:33
连续动作里有个“必做”选项,取消勾选
hz4011: 在人民网的这个案例中,如果我想将结果限制在“精确搜索”中(需要点击“精确搜索”的框)该怎么做呢?我尝试设置了一个点击该处的动作,但在运行中每次都会爬两 ...
评论 hz4011 2024-3-5 05:40
在人民网的这个案例中,如果我想将结果限制在“精确搜索”中(需要点击“精确搜索”的框)该怎么做呢?我尝试设置了一个点击该处的动作,但在运行中每次都会爬两页精确搜索内容然后就再次点击该处,以至于变成“非精确搜索”
评论 Fuller 2021-12-16 15:51
shigydsj: 在第一级搜索任务中可以做批量搜索吗?比如我有一批关键词,想依次搜索然后抓取结果,如何实现?
定义规则的方法参看这个讨论:https://www.gooseeker.com/doc/thread-19251-1-1.html  。在那个帖子中,你可以把一级规则名发出来我们检查一下
评论 shigydsj 2021-12-16 15:30
在第一级搜索任务中可以做批量搜索吗?比如我有一批关键词,想依次搜索然后抓取结果,如何实现?

查看全部评论(5)

GMT+8, 2024-3-29 17:40