拒绝低效!Python教你爬虫公众号文章和链接

面对几百篇的文章,这样一个个选择的话,是一件苦差事。

作为一个 Python开发工程师,当然不能这么低效,我们用爬虫把文章的标题和链接等信息提取出来。

我们需要通过抓包提取公众号文章的请求的 URL,这次直接抓取 PC 端微信的公众号文章列表信息,很简单。

我以抓包工具 Charles 为例,勾选容许抓取电脑的请求,一般是默认就勾选的。

拒绝低效!Python教你爬虫公众号文章和链接

为了过滤掉其他无关请求,我们在左下方设置下我们要抓取的域名。

拒绝低效!Python教你爬虫公众号文章和链接

打开 PC 端微信,打开 「Python知识圈」公众号文章列表后,Charles 就会抓取到大量的请求,找到我们需要的请求,返回的 JSON 信息里包含了文章的标题、摘要、链接等信息,都在 commmsginfo 下面。

拒绝低效!Python教你爬虫公众号文章和链接

拒绝低效!Python教你爬虫公众号文章和链接

这些都是请求链接后的返回,请求链接 url 我们可以在 Overview 中查看。

拒绝低效!Python教你爬虫公众号文章和链接

通过抓包获取了这么多信息后,我们可以写爬虫爬取所有文章的信息并保存了。

公众号历史文章列表向上滑动,加载更多文章后发现链接中变化的只有 offset 这个参数,我们创建一个初始化函数,加入代理 IP,请求头和信息,请求头包含了 User-Agent、Cookie、Referer。

拒绝低效!Python教你爬虫公众号文章和链接

这些信息都在抓包工具可以看到。

拒绝低效!Python教你爬虫公众号文章和链接

通过抓包分析出来了请求链接,我们就可以用 requests 库来请求了,用返回码是否为 200 做一个判断,200 的话说明返回信息正常,我们再构建一个函数 parse_data() 来解析提取我们需要的返回信息。

通过分析返回的 Json 数据,我们可以看到,我们需要的数据都在 appmsgext_info 下面。

拒绝低效!Python教你爬虫公众号文章和链接

我们用 json.loads 解析返回的 Json 信息,把我们需要的列保存在 csv 文件中,有标题、摘要、文章链接三列信息,其他信息也可以自己加。

这样,爬取的结果就会以 csv 格式保存起来。

拒绝低效!Python教你爬虫公众号文章和链接

运行代码时,可能会遇到 SSLError 的报错,最快的解决办法就是 base_url 前面的 https 去掉 s 再运行。

经常写文章的人应该都知道,一般写文字都会用 Markdown 的格式来写文章,这样的话,不管放在哪个平台,文章的格式都不会变化。

在 Markdown 格式里,用 [文章标题](文章url链接) 表示,所以我们保存信息时再加一列信息就行,标题和文章链接都获取了,Markdown 格式的 url 也就简单了。

爬取完成后,效果如下。

拒绝低效!Python教你爬虫公众号文章和链接

我们把 md链接这一列全部粘贴到 Markdown 格式的笔记里就行了,大部分的笔记软件都知道新建 Markdown 格式的文件的。

拒绝低效!Python教你爬虫公众号文章和链接

这样,这些导航文章链接整理起来就是分类的事情了。

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助


分享到:


相關文章: