Scrapy学习实例(二)采集无限滚动页面

来源:未知

点击:

  上一篇写的是采集虎嗅网首页的新闻数据,有朋友对我说,采集多页试试看。后来研究下,虎嗅网首页是POST加载,Form Data中携带参数,所以只需要带上一个循环就好了。这是我最初的想法,先让我们看看Scrapy中如何采集无限滚动页面?

  先举个栗子,采集网是quotes

  下拉时,会发现更多新的请求,观察这些请求,返回的都是json数据,也就是我们所需的,再看看他们的不同,也就是参数的改变,完整链接是:

  这就很清晰了。

  返回的是json,我们需要解析,然后提取数据,那我们如何知道最多有多少条json呢,文件已经告诉我们了:

  has_next:true

  查看网站,采集text、author和tags这三个

  运行爬虫,然后就可以看到结果了。

  那么如何应用到虎嗅网呢?首先还是要去分析网页。

  虎嗅网的参数有3个:

  我们知道page就是翻页页码,huxiu_hash_code是一个不变的字符,last_dateline看起来像unix时间戳,验证确实如此。这个时间戳有必要带上吗,我想验证试试看。

  在postman中测试,不带上last_dateline也是可以返回数据,并且这个json中已经告诉我们一共有多少页:

  "total_page": 1654

  在主函数中我们可以依葫芦画瓢

  输出的数据有点难看,是一段一段的。。

  因为data['data']是一段html文件,所以这里选择的是xpath,不清楚这里是否直接使用Scrapy的xpath解析工具,如果可以,欢迎在评论中告诉我。

  原文在此 Scrapy学习实例(二)采集无限滚动页面

下一篇:没有了