当列表页采用点击或滚动加载更多内容,无法批量生成列表翻页网址进行采集。
本合集将介绍4种实用有效的采集方法,解决此类网页采集难题。
1. 批量生成详情页网址
若文章详情页网址有规律变化(如数字递增),可直接批量生成详情页网址采集,无需通过列表页获取。
配置步骤:
1)用高级模式创建采集任务;
2)任务基本信息处,采集模式选择 "详情页(零散采集)" ;
3)批量生成详情页网址,设置翻页范围,保存;
4)关闭弹窗,务必再点击基本信息页面下方的保存;
5)打开详情提取器,检查并完善详情页采集规则,启动采集。
2. 网站地图采集
检查是否存在网站地图(sitemap),其地址通常为:域名/sitemap.xml 或者 域名/sitemap.html 。
网站地图是网站的导航索引文件,列出所有重要页面的网址,主要用于帮助搜索引擎抓取和索引网站内容,可作为列表页进行批量采集。
配置步骤:
1)创建任务时,在“列表页” 输入网站地图网址,“典型详情页” 输入一个详情页网址;
2)打开列表提取器,点击 "配置为SiteMap" 按钮,保存并关闭;
3)按向导完成详情页采集规则配置,启动采集。
3. 循环采集详情页
若文章详情页中存在 "上一篇" 和 "下一篇" 、"相关推荐" 等跳转链接,可使用无限循环采集功能:在采集详情页内容的同时,自动提取页面中的其他详情页链接加入采集队列,一个接一个不断循环,最终实现整站文章的批量采集。
配置步骤:
1)用高级模式创建采集任务,起始网址输入一个详情页地址;
2)打开详情提取器,开启 "无限点选开关",再点选包含目标链接的区域;
3)打开 "无限循环启用配置" ,勾上启用选项后保存,启动采集。
4.JSON格式采集
检查是否提供JSON格式的页面,它通常包含多个详情页的网址和内容,并且JSON页面的URL地址呈数字递增规律变化,可批量生成地址进行采集。
(1)获取JSON页面地址
在浏览器访问目标网址 -> 启用开发者工具(F12或右键检查)-> 切换到 "Network",选择 "XHR" 选项 -> 点击加载更多按钮,或者滚动下拉页面,加载更多内容 -> 在开发者工具出现相应的JSON文件地址,点击文件名后可获取完整地址,即Request URL属性值。
(2)采集JSON数据
根据JSON格式的内容,可分为两种采集方式:“提取JSON中的详情页网址” 和 “直接采集JSON里的内容” 。
I)提取详情页网址
JSON数据的内容仅有精简的基本信息(如ID、标题和详情页链接等),完整的内容需通过访问详情页获取。
配置步骤:
1)用高级模式创建采集任务,批量生成JSON页面的URL网址;
2)打开列表提取器,选择【Json数据】网址类型;
3)【提取JSON键名】填写与详情页链接地址相关的属性名(通常为url、id、ArticleId等);
4)【链接生成定义】组合完整的详情页网址,若提取的键名值是完整网址,则留空;
上图示例应填写http://www.域名.com/news/#[ArticleId]#.html
5)完善详情页采集规则配置,启动采集。
II)直接采集内容
若JSON数据中包含多个文章页面的主要信息(如标题、正文、时间、描述和关键词等),则可直接遍历采集每篇文章中的目标字段。
配置步骤:
1)在采集任务列表【创建采集任务(高级模式)】-> 起始网址输入JSON页面的URL地址 -> 选择【Json数据源】采集模式,保存;
2)点击【JSON提取器(采内容)】进入提取规则配置;
3)在可视化JSON数据树,选择包含要采集数据的节点(必须Array类型),选中后为蓝色底框;
4)点击右侧【填到“提取数据的JSON表达式”】,自动生成表达式并填到上方对应选项框;
5)【要提取的字段名】可点击右侧的 "获取生成字段",自动获取节点内的全部字段名,也可手动输入目标字段名;
6)【判断数据重复的字段名】需从 "要提取的字段名" 的已有字段中选取,一般填写1个即可(多个用逗号,分隔);
7)保存后回到任务基本信息页,启动采集。