百度知道是用户自己根据具有针对性地提出问题,通过积分奖励机制发动其他用户,来解决该问题的搜索模式。同时,这些问题的答案又会进一步作为搜索结果,提供给其他有类似疑问的用户,达到分享知识的效果。

 

本文使用了文本循环方法,实现一次采集多个关键词的百度知道搜索结果。采集的字段为:问题、问题内容、提问者、问题浏览量和最佳答案。大家在实际操作过程中,可根据自身需求,更改字段内容。百度知道采集过程中需注意以下几点:1、每个关键词搜索出来的有广告,与正式问答的网页结构不同。2、每个回答的网页结构也不是全然一样的,需根据具体网页进行判断。以下是一个完整的采集过程。

 

 

采集网站:https://zhidao.baidu.com/

 

 

使用功能点:

l 分类列表信息采集

/tutorialdetail-1/fylb-70.html

l Xpath

xpath入门教程1

xpath入门2

相对XPATH教程-7.0版

l AJAX点击和翻页

/tutorialdetail-1/ajaxdjfy_7.html

l 文本循环

/tutorialdetail-1/wbxh_7.html

 

步骤1:创建采集任务

1)进入主界面,选择“自定义模式

 

 

 

2)要采集的网址制粘贴到网站输入框中,点击保存网址

 

 

 

步骤2:输入文本

1)在页面右上角,打开“流程”,以展现出“流程设计器”“定制当前操作”两个板块。选中“循环按钮”不放,将其拖动到流程中

 

 

 

2)选中循环步骤,在高级选项中,勾选循环方式为“文本列表”,并在文本列表框中,输入要搜索的关键词。输入完成后,点击“确定”

 

 

 

3)点击搜索框,在操作提示框中,选择“输入文字”

 

 

 

4)在此处不输入文本,直接点击“确定”

 

 

 

5)“输入文字”步骤,拖入到流程中

 

 

 

6)勾选“使用当前循环里的文本来填充输入框”,最后点击“确定”

 

 

 

7)我们手动执行一下规则。选择一个关键词“八爪鱼”,再点击“输入文字”步骤

 

 

 

可以看到,“八爪鱼”自动填充到了搜索框中

 

 

 

8)点击“搜索答案”按钮,在弹出的操作提示框中,选择“点击该按钮”

 

 

 

步骤3:创建翻页循环

 

1)将页面下拉到底部,点击“下一页”按钮,在右侧操作提示框中,选择“循环点击下一页”,以建立一个翻页循环

 

 

 

步骤4:创列表循环并提取数据

 

1)移动鼠标选中页面里第一条链接(注意:搜索结果页面可能会出现广告,我们在此将其排除,请注意选中的需是正常问答的链接),系统会自动识别同类链接。在弹出的操作提示框中,选择“选中全部”

 

 

 

2)选择“循环点击每个链接”

 

 

 

3)系统会自动点击进入链接详情页,选中标题,在弹出的操作提示框中,选择“采集该元素的文本”

 

 

 

4)字段选择完成后,选中相应的字段,可以进行字段的自定义命名

 

 

 

注意:为了让大家看到文本循环的效果,在开始启动采集前,这里设置了循环翻页的次数为1。大家在实际操作过程中,可以按照自己的需要设置翻页次数

 

 

 

5)完成后,点击左上角的“保存并启动”,选择“启动本地采集”

 

 

 

步骤5:修改Xpath

 

启动一次采集后,我们发现,问题内容提问者最佳答案这三个字段,在多个数据行中,出现缺失。观察网页发现,问题内容字段属正常现象,因为有的网页有问题内容,有的网页没有。提问者最佳答案字段,则是由于Xpath定位不准导致的

 

1)首先来看提问者这一字段。网页的提问者有两种情况,一种显示提问者ID,一种显示匿名,系统自动生成的xpath只能定位到其中一种。我们需要一条,能将匿名和提问者ID都定位到的xpath

选中提问者字段,点击图中的按钮

 

 

 

选择“自定义定位元素方式”

 

 

 

将元素匹配的xpath 修改为

.//*[@id='ask-info']/a|.//*[@id='ask-info']/span[2],完成后点击“确定”

 

 

 

3)然后来看最佳答案这一字段。系统自动生成的xpath,只能定位到当前页的最佳答案,不能定位到所有页的最佳答案

观察网页源码发现,所有页的最佳答案字段,具有相同的class属性

 

 

因而我们用class属性来写一条xpath:.//*[@class='best-text mb-10']。经验证,此条xpath:.//*[@class='best-text mb-10'],的确可以正确定位到每页的最佳答案字段。

 

按照刚才的操作,选中提问者字段,点击图中的按钮

 

 

 

选择“自定义定位元素方式”,将修改后的xpath:.//*[@class='best-text mb-10'],复制到八爪鱼中的相应位置

 

 

 

步骤6:数据采集及导出

 

1)再次启动采集,采集完成后,会跳出提示,选择导出数据”。选择合适的导出方式,将采集好的数据导出这里我们选择excel作为导出为格式,数据导出后如下图可以看到,采集的数据中,是八爪鱼、大数据、数据采集、爬虫软件4大关键词的问答结果