scrapy分页抓取网页(不重载页面的页面器爬取点入(1)_社会万象_光明网(组图))
优采云 发布时间: 2022-04-20 13:36scrapy分页抓取网页(不重载页面的页面器爬取点入(1)_社会万象_光明网(组图))
一种是:点击下一页,只会重新渲染当前页面的一部分
在早期版本的 web-scraper 中,两种抓取方式是不同的。
需要重新加载的页面需要链接选择器
如果不需要重新加载页面,可以使用元素点击选择器
对于某些 网站 可以,但有很大的限制。
经过我的实验,使用Link选择器的第一个原理是取出下一页的a标签的超链接,然后去访问,但是并不是所有的网站的下一页都通过一个标签实现。
如果你使用js*敏*感*词*事件并像下面这样跳转,就不能使用Link选择器了。
新版网络爬虫特别支持导航分页器,并增加了分页选择器,可以完全适用于两种场景。下面我分别演示一下。
无需重新加载页面的分页器抓取
点击具体的CSDN博文,拉到底部查看评论区。
如果你的文章比较热门,有很多同学评论,CSDN会分页显示,但是不管在哪个页面,评论都属于同一篇文章文章,当您浏览任何页面的评论部分时,无需刷新博文,因为这种分页不会重新加载页面。
对于这种不需要重新加载页面的点击,可以使用Element Click来解决。
最后一点要注意root和next_page的选择,只有这样才能递归爬取
最终爬取效果如下
使用Element Click的站点地图配置如下,可以直接导入我的配置进行研究,下载配置文件:
当然,对于分页之类的东西,网络爬虫提供了更专业的分页选择器,更精简,效果最好
对应sitemap的配置如下,可以直接导入使用,下载配置文件:
寻呼机抓取以重新加载页面
CSDN博客文章列表,拉到底部,点击具体页面按钮,否则最右边的下一页会重新加载当前页面。
对于这种分页器,Element Click什么都做不了,读者可以自行验证,最多爬一页后就关闭了。
而作为分页选择器的分页自然适用
爬取的拓扑同上,这里不再赘述。
对应sitemap的配置如下,可以直接导入学习,下载配置文件:
4.二级页面的爬取
CSDN的博客列表列表页,显示的信息比较粗略,只有标题,发表时间,阅读量,评论数,是否是原创。
如果你想获得更多的信息,比如博文的文字、点赞数、采集数、评论区的内容,你必须点击具体的博文链接才能查看它
网络爬虫的操作逻辑与人类似。如果你想抓取更详细的博文信息,你必须打开一个新页面来获取它,而网络爬虫的链接选择器就是这样做的。
爬取路径的拓扑如下
爬取的效果如下
sitemap的配置如下,可以直接导入使用,下载配置文件:
5.写在最后
以上整理了分页和二级页面的爬取方案,主要是:分页器爬取和二级页面爬取。
只要学会了这两个,就已经可以处理绝大多数结构化的网络数据了。