python 爬虫实战:掘金文章爬取并保存在 mysql
一、代码目的
最近进行一个掘金爬虫,感觉还是挺有意思的,掘金的爬虫文章好像还是比较少的,记录一下。
二、爬取内容和思路
2.1 爬取内容:
主要包括两部分:
1. 对掘金的文章列表进行爬取,包括文章标题、用户名、文章简介以及文章链接;
2. 具体的文章内容,这部分只爬取了文章标题和内容。
2.2 思路
爬取内容的分析
首先分析图一,这部分通过 F12 将请求锁定在 https://apinew.juejin.im/search_api/v1/search,这是一个 post 请求,返回的 data 中有 20 个左右数据。并且每次下拉滚动条加载的新数据都是从这个链接得到。
在这部分代码里,主要是 payload 中有一个 cursor 变量,这个变量定位了下一次申请的 cursor,有点链表的感觉,添加了这部分的更新之后,每次 post 请求得到的内容就会和下拉滚动栏效果相同。
关于这个 cursor 的部分,我以前没有接触过这种更新方式,由于现在我找到的掘金爬虫文章比较老,没有看到提到这个部分的。
接着是具体文章的爬取,这部分比较简单了,直接对 https://apinew.juejin.im/content_api/v1/article/detail 进行爬取,这也是一个 post 请求,返回值中 content 就是文章的全部内容。
存储到 mysql
将爬取内容存储到mysql,这部分主要是参考了《如何将爬虫的数据添加到mysql数据库中》。这个对初学者还是很友好的,而且代码的结构也很好,我自己根据自己的情况,添加了部分代码。
由于我存储的内容比较长,我将content 设置尾 longtext
存入数据库的效果如下:
三、总结
最终的代码结构如下:
具体代码链接:https://github.com/tonggongzhiqiu/jueJinSpider