面对几百篇的文章,这样一个个选择的话,是一件苦差事。
作为一个 Python开发工程师,当然不能这么低效,我们用爬虫把文章的标题和链接等信息提取出来。
我们需要通过抓包提取公众号文章的请求的 URL,这次直接抓取 PC 端微信的公众号文章列表信息,很简单。
我以抓包工具 Charles 为例,勾选容许抓取电脑的请求,一般是默认就勾选的。
为了过滤掉其他无关请求,我们在左下方设置下我们要抓取的域名。
打开 PC 端微信,打开 「Python知识圈」公众号文章列表后,Charles 就会抓取到大量的请求,找到我们需要的请求,返回的 JSON 信息里包含了文章的标题、摘要、链接等信息,都在 commmsginfo 下面。
这些都是请求链接后的返回,请求链接 url 我们可以在 Overview 中查看。
通过抓包获取了这么多信息后,我们可以写爬虫爬取所有文章的信息并保存了。
公众号历史文章列表向上滑动,加载更多文章后发现链接中变化的只有 offset 这个参数,我们创建一个初始化函数,加入代理 IP,请求头和信息,请求头包含了 User-Agent、Cookie、Referer。
这些信息都在抓包工具可以看到。
通过抓包分析出来了请求链接,我们就可以用 requests 库来请求了,用返回码是否为 200 做一个判断,200 的话说明返回信息正常,我们再构建一个函数 parse_data() 来解析提取我们需要的返回信息。
通过分析返回的 Json 数据,我们可以看到,我们需要的数据都在 appmsgext_info 下面。
我们用 json.loads 解析返回的 Json 信息,把我们需要的列保存在 csv 文件中,有标题、摘要、文章链接三列信息,其他信息也可以自己加。
这样,爬取的结果就会以 csv 格式保存起来。
运行代码时,可能会遇到 SSLError 的报错,最快的解决办法就是 base_url 前面的 https 去掉 s 再运行。
经常写文章的人应该都知道,一般写文字都会用 Markdown 的格式来写文章,这样的话,不管放在哪个平台,文章的格式都不会变化。
在 Markdown 格式里,用 [文章标题](文章url链接) 表示,所以我们保存信息时再加一列信息就行,标题和文章链接都获取了,Markdown 格式的 url 也就简单了。
爬取完成后,效果如下。
我们把 md链接这一列全部粘贴到 Markdown 格式的笔记里就行了,大部分的笔记软件都知道新建 Markdown 格式的文件的。
这样,这些导航文章链接整理起来就是分类的事情了。
最后,小编想说:我是一名python开发工程师,
整理了一套最新的python系统学习教程,
想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助
閱讀更多 Python程序員不動否 的文章