scrapy分页抓取网页(不重载页面的页面器爬取点入(1)_社会万象_光明网(组图))

优采云 发布时间: 2022-04-20 13:36

  scrapy分页抓取网页(不重载页面的页面器爬取点入(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.写在最后

  以上整理了分页和二级页面的爬取方案,主要是:分页器爬取和二级页面爬取。

  只要学会了这两个,就已经可以处理绝大多数结构化的网络数据了。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线