社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

批量保存公众号文章方法合集,附python教程

懒人找资源 • 5 年前 • 919 次点击  
小懒人发现 昨天文章 分享那么实用的软件阅读数却骤减,估计是公众号平台采取的乱序推送使很多粉丝没看到新发文,也难怪那么多公众号开始发“你可能看不到我了”这类的文章。然后请求星标置顶啥的。小懒人就不说这类的话了,大家觉得有帮助,拿到自己想要的资源就ok,觉得公众号合你口味,置顶也ok,或者后台回复“微信”加小懒人微信,新推文也会发朋友圈的。(小懒人没有分工作微信和生活微信哈,更不会给大家发垃圾信息,也请营销号们放过~)
正文

编辑了三小时的文章

今天算是技术贴~
前两天群友反馈 pycharm激活码生成器 失效了,昨天早上检查完程序顺手修复了,已更新~
信息爆炸时代,有太多冗杂的信息,它们分散着我们的注意力,金玉其外。但总有那些坚持优质输出的号主,在分享着自己对世界的见解。
经过这么多年的沉淀,公众号文章无意成为一块值得发掘的宝藏,咱们公众号也有不少粉丝通过微信搜一搜过来的。很多时候看到一个喜欢的公众号,怕他哪天消失了,那么备份保存下来就很有必要了。
总结一下几种关于公众号文章的备份方法~

方法1 :电脑端微信备份神器

电脑端微信批量备份,这个方法咱们粉丝应该不陌生。见文章:公众号备份神器,批量保存任意公众号文章,后台已经更新到最新版本,回复“公众号备份”即可领取。体验群群友据说备份了上T的文章,回头分享一下小懒人如何利用这备份下来的文章打造成知识素材库。

方法2

使用搜狗微信或者wechatsogou 这个python库,搜索到目标公众号然后批量保存。

方法3

通过流量抓包,使用fiddler或者其他中间流量代理的方法,代理移动端微信的流量以实现数据爬取,号搜就是这个方法。可以实现阅读数点赞数等数据,随便找一篇号搜的文章就知道了,:号搜(9):粥左罗公众号大数据分析和文章推荐。这类对新媒体运营人员比较有诱惑力,因为可以直观看出历史发文数据的变化规律。不过该方法需要找懒人购置号搜软件,这里就不展开了。

方法4

最后一个方法,是利用微信公众号接口,使用python批量爬取。
这篇文章将详细介绍原理和代码,源码也会一同送出~
该方法要求你可以登录公众号后台

获取cookie

登录后按F12或者右键检查打开浏览器开发者工具,刷新页面后在网络能看到加载的各类请求。
点击一个url,就能看到cookie的信息(cookie可以理解为你的信息准入,日常生活中也要养成保护好个人cookie的习惯)

使用一个脚本python脚本 get_cookie.py 对cookie进行格式化处理:
# get_cookies.py
import json# 从浏览器中复制出来的 Cookie 字符串cookie_str = "把字符串都复制到这里来"cookie = {}# 遍历 cookie 信息for cookies in cookie_str.split("; "): cookie_item = cookies.split("=") cookie[cookie_item[0]] = cookie_item[1]# 将cookies写入到本地文件with open('cookie.txt', "w") as file:# 写入文件 file.write(json.dumps(cookie))
这时候就会在本地生成一个cookie.txt,等会儿只要调用这个就能利用cookie。
接下来需要获取文章链接。
首先新建图文,然后在编辑界面上方可以看到超链接,点击此处。
弹出来后选择其他公众号
我们举菜头叔的槽边往事为例
点击的时候可以看到开发者工具里有新的网络请求。
根据懒人查阅的资料可以知道: begin 是从第几篇文章开始, count 是一次查出几篇,fakeId 对应这个公号的唯一 Id,token 是通过 Cookie 信息来获取的。
# download.py# 引入模块import requestsimport jsonimport reimport randomimport timeimport pdfkit
# 打开 cookie.txtwith open("cookie.txt", "r") as file: cookie = file.read()cookies = json.loads(cookie)url = "https://mp.weixin.qq.com"#请求公号平台response = requests.get(url, cookies=cookies)# 从url中获取tokentoken = re.findall(r'token=(\d+)', str(response.url))[0]# 设置请求访问头信息headers = {"Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&token=" + token + "&lang=zh_CN","Host": "mp.weixin.qq.com","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",}
# 循环遍历前10页的文章for j in range(1, 10, 1): begin = (j-1)*5# 请求当前页获取文章列表,改这里的fakeid就行 requestUrl = "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin="+str(begin)+"&count=5&fakeid=MzU1NDk2MzQyNg==&type=9&query=&token=" + token + "&lang=zh_CN&f=json&ajax=1" search_response = requests.get(requestUrl, cookies=cookies, headers=headers)# 获取到返回列表 Json 信息 re_text = search_response.json() list = re_text.get("app_msg_list")# 遍历当前页的文章列表for i in list:# 将文章链接转换 pdf 下载到当前目录 pdfkit.from_url(i["link"], i["title"] + ".pdf")# 过快请求可能会被微信问候,这里进行10秒等待 time.sleep(10)
如果想直接利用代码,只需要把上面的requestUrl里的fakeid改成你的目标公众号的fakeid就行了,比如刚才看到槽边往事的链接是:
https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=MjM5MjAzODU2MA==&type=9&query=&token=310737197&lang=zh_CN&f=json&ajax=1
所以fakeid是
MjM5MjAzODU2MA
替换一下就行,其他不变。
另外大家可以看到这里是爬到文章链接后利用pdfkit模块去生成pdf的,所以需要在本地先安装wkhtmltopdf环境,
官网是
https://wkhtmltopdf.org/downloads.html
支持多系统,小懒人的知识星球备份就是利用该模块生成pdf的。下载完安装,然后pip install pdfkit,这时候调用pdfkit没问题的话就可以跑脚本了。
后台已经准备好 get_cookie.pydownload.py两个脚本了,先把cookie复制到get_cookie.py里然后运行,然后在download.py里改变目标公众号的fakeid。接着执行download.py,等待让程序慢慢运行就可以了。
脚本里写的是只爬取前10页的文章,需要改变更多的自己改参数就行。
上图就是懒人爬的文章截图。
打开看到样式也是很不错。
代码也不是小懒人原创的,这里放后台一起给出了。有编程能力的或者正在学习python的可以去参考学习。
要说最方便的方法还是这个神器:公众号备份神器,批量保存任意公众号文章
没有任何技术要求,批量备份,连留言都可以存下来,可以控制速度还可以跳过已下载文章,截止日期,就不用自己写脚本那么折腾了。如果作者更新的话小懒人也会同步更新的~
今天的python代码下载地址:
https://lazyman.lanzous.com/ibvIYdrd21g
推荐阅读
WPS合集,再分享两个懒人推荐神器
分享几个实用破解软件
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/70419
 
919 次点击