深入探索未来之前,我们先回顾一下36氪(36kr)的成长脚步。今日,我们将对36kr的文章内容进行采集,为后续的数据分析做好铺垫。预计在12月底,当我们累积编写至第50个案例分析时,将推出一篇全新的系统数据分析文章,敬请期待!

Python爬虫入门教程:36氪(36kr)数据抓取实战解析-scrapy篇

36kr,引领一部分人预见未来,而今日,我们的任务是探索它的历史轨迹。

网站链接:https://36kr.com/

36kr的页面设计采用了瀑布流形式,随着页面的下拉,数据会从后台动态加载。基于这一特点,可以推测它使用了ajax异步加载数据。只需打开开发者工具,便能迅速找到所需数据,让我们尝试一下!

以下是捕获的链接:

经过多次测试,发现per_page参数最大可扩展至300,但超过100时返回数据不尽如人意,因此我们决定将其设定为100。page参数代表页码,只需循环叠加即可。

另一个关键参数是文章总数,有了它,我们可以快速构建出所需的页码。

页面初始地址为第一页数据,随后通过函数调用获取参数,这里需要注意的是,返回的数据包含关于它的详细说明,具体可参考https://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/request-response.html。

所有参数命名直观明了,基本能准确表达各自含义。在解析数据时,需注意检查某些字段是否存在于字典中。

在代码中,Kr36Item类需提前创建。

最后,编写数据持久化代码。

执行上述代码,未经多余处理,未调整并发速度,也未采取反爬措施,最终大约获取了条数据,与预估相差300多条,影响不大,具体原因未深究,哈哈。