【从零开始学爬虫】采集丁香医生新冠问答数据

70 阅读5分钟

|采集简介

【场景描述】 采集丁香医生网中新冠关键词下的最新医患问答数据。

【源网站介绍】 丁香医生网提供问医生、查疾病、查药品、查疫苗、查检查、科普视频等信息。

【使用工具】 前嗅ForeSpider数据采集系统,免费下载:

www.forenose.com/view/foresp…

|采集网站

【入口网址】

dxy.com/search/ques…

【采集内容】

采集新冠问题的用户提问、医生回答、医生姓名、科室、医生所属医院最新基本数据。

【采集效果】 如下图所示:

|思路分析

配置思路概览:

|配置步骤

1.新建采集任务

选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。

选择【抽取链接】的所有链接,勾选【翻页链接】,然后点击【完成】。

2.抽取翻页链接

①在入口页搜索选择不同页数,发现不同页数搜索结果的链接,只更换了图中红框部分,而红框部分正是经过转码后的页数,于是得出页数链接的拼接规则为:

dxy.com/search/ques…

②在【模板抽取配置】选择频道(即任务名称),选择【脚本窗口】,将页数搜索配置在频道处即可。

③具体配置脚本如下:

④效果预览:

点击【保存】,点击【采集预览】,即可看到配置效果。

3.链接抽取

这一步是在获取的翻页链接中,提取每页全部问答链接:

①在原有模板基础上,点击按钮如下,添加列表链接抽取。

②采用地址过滤的方法来抽取表一链接,具体如下所示:

点击采集预览,先观察标题链接规律,找到规律,很明显标题链接中都包含:dxy.com/question/规律…

然后设置地址过滤,过滤包含“dxy.com/question/”的…

③关联模板,点击【列表链接】抽取,关联模板03。

4. 数据抽取

①链接抽取完成进入数据页,在原有模板基础上添加数据抽取,点击【+】后新建模板03,然后点击【添加数据抽取】按钮。

②此时要完成数据建表的工作:

a.选择【数据建表】,点击【采集数据表结构】中的【+】,即可添加表单,名称可以自定义。

b.另外需要注意,每一个表单都需要配置主键字段,需要使用脚本的字段,在高级类型中选择脚本取值才可进行脚本操作。

c.其它字段根据实际需求配置即可,例如:questions字段配置如下。

③将新建好的表单,关联到模板中去,如下图所示:

④填写示例地址

采集预览,复制任意一条列表链接。

⑤将链接粘贴到本模板示例地址中,并双击内置浏览器空白部分,加载本链接。

⑥需要配置哪一个字段,点击该字段,在右侧字段属性中配置即可,选择脚本配置的字段,在脚本窗口中进行代码配置。

id字段:主键字段,采集内容选择【主键】-【网页主键】,主键为当前网页的MD5值。

doctorname字段:医生姓名字段,采集内容选择【选区内可见文本】-【选区内可见文本】,选择doctorname按住“ctrl+鼠标左键”选择所需区域,之后点击【确认选区】。

hospitalname字段:所属医院字段,采集内容选择【选区内可见文本】-【选区内可见文本】,选择hostpitalname按住“ctrl+鼠标左键”选择所需区域,之后点击【确认选区】。

department字段:科室字段,采集内容选择【选区内可见文本】-【选区内可见文本】,选择department按住“ctrl+鼠标左键”选择所需区域,之后点击【确认选区】。

question字段:问题字段是用脚本处理的。

以第一页其中一个问答为例,查看网页结构(可以使用F12查看,但需确认源码与F12内容一致)。

通过查看网页结构,发现所需要的链接全部包含在“class”类中。每个链接块对应多个“dialog”类,我们所需要的内容包含在“class”类的下一个结点“dialog theme-dark”中,“GetTextAll”获取文本的结点。

answer字段: 回答字段是用脚本处理的。

使用F1查看网页,发现所需要的链接全部包含在“class”类中。每个链接块对应多个“dialog”类,我们所需要的内容包含在“class”类的“dialog theme-white”下一个结点中,“GetTextAll”获取文本的结点。

⑦以上完成全部字段配置,效果预览如下:

|采集步骤

以上模板配置已完成,在采集预览没有问题后,便可以进行数据采集。

1.首先要建立采集数据表:

选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为doctorQandA(注意命名不能用数字和特殊符号),点击【确定】创建完成,勾选数据表。

2.选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。

3.可以在【数据浏览】中,选择数据表查看采集数据。

4.导出数据

采集结束后,可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。

5.导出的文件打开如下图所示: