【全网独家有效】一键爬取微信公众号所有文章,保留格式成PDF!
ninehua 2024-12-30 06:03 92 浏览
还在手动截图或复制粘贴保存微信公众号的好文章?告诉你一个更高效的方法,可以让你自动化将你喜欢的微信公众号文章保存为PDF,而且格式不变!这不仅可以帮你轻松整理、归档文章,还能在作者删除或公众号被封时,依然保留那些珍贵的内容。今天,我将为大家带来一项颠覆性的技术——自动化爬取微信公众号文章并原样保留格式存储为PDF文件!从此告别繁琐,一键搞定!而且是全网独此真正有效代码
一、为何需要下载微信公众号文章为PDF?
微信公众号作为我们获取信息、学习知识的重要渠道,每天都有大量的优质文章涌现。然而,有时候我们会遇到一些不可预见的情况,比如文章被作者删除、微信公众号被封号等,导致我们无法再次找到这些好文章。或者,长按复制链接,打开网页版保存,但总是少了点什么——格式、图片、排版全都变了样。为了避免这些遗憾,将文章下载到本地并保存为PDF格式成为了一个很好的选择。PDF格式具有跨平台、不易修改等特点,能够确保文章内容的完整性和可读性。
二、如何实现微信公众号文章一键爬取并保存为PDF
前提准备
1.注册一个个人微信公众号用来获取想要爬取的公众号的长期地址
注册方法:《https://kf.qq.com/faq/120911VrYVrA151009eIrYvy.html》
2.准备python环境并安装相应的第三方库
pip install requests # 这是爬虫必备库
pip install pdfkit # 用于转pdf的工具库,有一个exe应用程序,
# 可以后台私信获取
pip install wechatsogou # 获取每一篇文章的api接口
pip uninstall Werkzeug # wechatsogou 依赖库默认是3.0.3版本,但是会报各种错误
pip3 install Werkzeug==0.11.15 # 安装正确版本
3.下载软件wkhtmltox 我会放到网盘里,后台私信"pachong"获取下载链接
批量获取微信公众号往期推送的URL、主题和时间
进入微信公众号——左侧草稿箱——新的创作—— 在图文编辑页中选择超链接——搜索你想要爬取的微信公众号名称——F12找到请求链接——复制curl bash——在curlconvert网站中获取请求地址和请求参数——解析获取的结果,得到文章标题、文章时间和文章URL
import requests
import json
import time
def crawl_all_article_url(page):
cookies = {
'appmsglist_action_3948617697': 'card',
'ua_id': 'cPS3GpAA01IEkaRJAAAAAIvDxBMaEL0YwwkNCjBwcAQ=',
'wxuin': '00617100352084',
'mm_lang': 'zh_CN',
'pac_uid': '0_6f1a31a07c4ab',
'iip': '0',
'_qimei_uuid42': '17c1a0b23191007d54d4e4bc638bde211f0338f3bf',
'_qimei_q36': '',
'_qimei_h38': '8f95287254d4e4bc638bde2102000002517c1a',
'RK': 'jTHYN6T3Wp',
'ptcz': '7345f2bcdd021ede2b9e3b5ff3857a614e8f78a9ecdf01650aa9a3a225afd21e',
'pgv_pvid': '8536395802',
'ts_uid': '6019633394',
'__root_domain_v': '.weixin.qq.com',
'_qddaz': 'QD.243806759066417',
'qq_domain_video_guid_verify': '6e9c8245aad0e837',
'_qimei_fingerprint': '36d8e5c4ef2b920cd2da41f5f01ca167',
'_clck': '3902705164|1|fm1|0',
'uuid': '4f9478c2739d6acbb0878a2e7b6c7b35',
'rand_info': 'CAESINjnm2X0Xw6se5Kiw4ayZI9Ft4uFGZEaPM8tGhG8HhAl',
'slave_bizuin': '3902705164',
'data_bizuin': '3902705164',
'bizuin': '3902705164',
'data_ticket': 'DJqUc+FKg56UrvBm8mHaCSI28Je1eBjufcd/Bb1OMvhzcoXTTFoXRMrQIbNGjKtA',
'slave_sid': 'cG5yOWQzc0JrX3BNejZmMEhZWG5yN1JFZ1lzMzVWbW85aDZVRHpuSmw2UGVyaTczRFozdGFDMWpvd2ZQckhMbm5tX0pNc1FkcWNBX3VnbEFDZ29pZ3JLNW5hTEdqbm9ROXIyX01GMW5TeUYzQ2RhbUdoZmtldTJDS3N4eWlDYmR0MUd0ZUtqcmkxYjV0UGZj',
'slave_user': 'gh_19182aefb42a',
'xid': '081913df3456544c4dc84a51fd52778f',
'_clsk': '121cm1q|1716519674628|15|1|mp.weixin.qq.com/weheat-agent/payload/record',
}
headers = {
'accept': '*/*',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
# 'cookie': 'appmsglist_action_3948617697=card; ua_id=cPS3GpAA01IEkaRJAAAAAIvDxBMaEL0YwwkNCjBwcAQ=; wxuin=00617100352084; mm_lang=zh_CN; pac_uid=0_6f1a31a07c4ab; iip=0; _qimei_uuid42=17c1a0b23191007d54d4e4bc638bde211f0338f3bf; _qimei_q36=; _qimei_h38=8f95287254d4e4bc638bde2102000002517c1a; RK=jTHYN6T3Wp; ptcz=7345f2bcdd021ede2b9e3b5ff3857a614e8f78a9ecdf01650aa9a3a225afd21e; pgv_pvid=8536395802; ts_uid=6019633394; __root_domain_v=.weixin.qq.com; _qddaz=QD.243806759066417; qq_domain_video_guid_verify=6e9c8245aad0e837; _qimei_fingerprint=36d8e5c4ef2b920cd2da41f5f01ca167; _clck=3902705164|1|fm1|0; uuid=4f9478c2739d6acbb0878a2e7b6c7b35; rand_info=CAESINjnm2X0Xw6se5Kiw4ayZI9Ft4uFGZEaPM8tGhG8HhAl; slave_bizuin=3902705164; data_bizuin=3902705164; bizuin=3902705164; data_ticket=DJqUc+FKg56UrvBm8mHaCSI28Je1eBjufcd/Bb1OMvhzcoXTTFoXRMrQIbNGjKtA; slave_sid=cG5yOWQzc0JrX3BNejZmMEhZWG5yN1JFZ1lzMzVWbW85aDZVRHpuSmw2UGVyaTczRFozdGFDMWpvd2ZQckhMbm5tX0pNc1FkcWNBX3VnbEFDZ29pZ3JLNW5hTEdqbm9ROXIyX01GMW5TeUYzQ2RhbUdoZmtldTJDS3N4eWlDYmR0MUd0ZUtqcmkxYjV0UGZj; slave_user=gh_19182aefb42a; xid=081913df3456544c4dc84a51fd52778f; _clsk=121cm1q|1716519674628|15|1|mp.weixin.qq.com/weheat-agent/payload/record',
'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token=1635832127&lang=zh_CN×tamp=1716519674285',
'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
}
params = {
'sub': 'list',
'search_field': 'null',
'begin': f'{5*page}',
'count': '5',
'query': '',
'fakeid': 'MzkyMjY2MjMwOQ==',
'type': '101_1',
'free_publish_type': '1',
'sub_action': 'list_ex',
'token': '1635832127',
'lang': 'zh_CN',
'f': 'json',
'ajax': '1',
}
print(params)
response = requests.get('https://mp.weixin.qq.com/cgi-bin/appmsgpublish', params=params, cookies=cookies, headers=headers)
resp = response.json()["publish_page"]
# print(response.json())
resp = json.loads(resp)
print(len(resp['publish_list']))
for i in resp['publish_list']:
article_links = []
art_info = json.loads(i['publish_info'])
art_title = art_info["appmsgex"][0]["title"]
art_time = art_info["appmsgex"][0]["create_time"]
art_date = date = time.strftime('%Y-%m-%d', time.localtime(art_time))
art_link = art_info["appmsgex"][0]["link"]
a_info = {
"url": art_link,
"title": art_title,
"time": art_date
}
article_links.append(a_info)
return article_links
article_links= []
for i in range(7): # 7是微信公众号文章页数
page_link = crawl_all_article_url(i)
print(page_link)
article_links = article_links + page_link
time.sleep(5)
爬取所有文章并存储为PDF格式
得到文章所有的url之后下一步就是爬取文章的具体内容了,在这里要用到wechatsougo接口,直接pip install 安装会存在依赖库版本问题,主要是库Werkzeug 的版本不对,总是报错,我在这个地方卡了两天,直到试到版本Werkzeug==0.11.15 才成功,需要你做的是:
pip uninstall Werkzeug # wechatsogou 依赖库默认是3.0.3版本,但是会报各种错误
pip3 install Werkzeug==0.11.15 # 安装正确版本
import pdfkit
import wechatsogou
def link_to_pdf(url, title, date):
ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3) # 调用接口
content_info = ws_api.get_article_content(url) # 请求链接
content = content_info['content_html'] # 转换为html格式
# 将标题和文章内容放入如下html中处理一下
html = f'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{title}</title>
</head>
<body>
<h2 style="text-align: center;font-weight: 400;">{title}</h2>
{content}
</body>
</html>'''
# wkhtmltopdf可执行程序路径
path_wkthmltopdf = r"D:\software-dir\wkhtmltox\bin\wkhtmltopdf.exe"
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) # 配置pdfkit
pdfkit.from_string(html, f"{title} {date}.pdf",
configuration=config) # 转PDF,并按设定好的命名文件
print(f"{title}.pdf 已下载")
for link in article_links:
url = link['url']
title = link['title']
date = link['time']
link_to_pdf(url, title, date)
想要获取完整代码和软件的朋友,关注公众号数海丹心,后台回复'pachong'免费获取
相关推荐
- 单打独斗的产品设计师工作流程总结
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。我从入行开始就在一个做自己产品的小公司工作,到现在已经三年了。刚开始工作的时候什么也不懂,老板说让出效果图,就开始直接...
- 毕业生必备软件!6套APP构建我的产品设计工作流
-
工欲善其事,必先利其器。思维和方法论固然超级重要,但是掌握并制定适合自己的工作流也可以成倍提升效率。好的软件加上熟练的使用可以帮助解决遇到的所有问题,不仅可以减轻大脑和身体的负担,更可以让产品设计师在...
- 如何在APP原型上写需求?(app原型设计规范)
-
你有没有过这样的经历——辛辛苦苦写了半天的文档,结果开发一眼没看,做需求的时候又把文档里的内容问了一遍?如果你也有这样的经历,那么在APP原型上写需求,或许能帮你解决这个问题。为什么要把需求直接写在...
- 产品经理工具箱|原型及交互设计工具
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。世界上最实在最方便的原型设计及交互工具:国外的谷歌,facebook等大型互联网公司的交互工具就是上面最原始,最有效最...
- 交互设计利器汇总:实用工具大揭秘!
-
近年来,页面交互设计有了很好的发展,越来越受到人们的重视。如果你想成为一名页面交互设计师,除了对平面设计和产品设计有一定的了解外,更重要的是要知道哪个软件适合页面交互设计。本文将带您了解5款流行的页面...
- Taro - 京东凹凸实验室出品的小程序多端开发工具,内置 UI 组件库
-
可以支持转换到微信/京东/百度/支付宝/字节跳动/QQ小程序以及H5端,同时也支持使用Vue语法了。关于Taro凹凸实验室(O2Lab)来自京东零售集团,创建于2015年10月,是...
- 开发2小时,修bug2周,我用Trae做了个小程序
-
在当今快速发展的科技时代,AI技术的崛起为开发者带来了前所未有的机遇与挑战。一方面,AI极大地降低了技术门槛,让更多的创意得以快速实现;另一方面,它也提升了竞争维度,促使人们在认知、方法和时间效率上不...
- 好用的10款免费原型设计工具(免费的原型设计软件)
-
对产品经理或UI/UX设计师来说,一款好的原型设计工具至关重要。好的原型设计软件能够帮助你快速构建还原度高且信息架构清晰明了的原型图,还能极大减低工作中与同事的沟通成本,更高效地推进工作。那么,一款好...
- 用局域网内部分享Axure原型,这里有详细的步骤
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。用axure做好原型,想分享给别人,有几个方法:生成本地文件,发送本地文件,但是文件有更新,就要重新发送用axure自...
- Axure制作App原型应该怎样设置尺寸?原型尺寸对照表!
-
最近有几位小伙伴儿都提出同样一个疑问:想用Axure设计一个APP原型放到真实的移动设备中演示,但不知道应该使用什么尺寸?若要解释清楚像素和分辨率需要的篇幅比较长,请大家参考百度百科。这里老枪搜集...
- 200套数据可视化大屏模版Axure高保真原型
-
超炫可视化大屏模版来了,Axure高保真原型。关注微信公众号“素材帮帮站”,发送消息100051,获取素材下载地址。查看往期文章,获取更多免费素材。
- Axure RP 8 Beta版正式上线(axure rp8是什么软件)
-
AxureSoftwareSolution公司于美国当地时间8月12日宣布其旗下产品AxureRP的v8版本的测试版正式上线。以下是其官方博客关于对AxureRP8Beta版的介绍:今天,...
- PM小技术:使用SAE发布在线Axure文档
-
俗话说,不会写代码的产品经理不是好的射鸡湿。关于产品经理与技术之间的微妙关系,扯开了讲可是长篇大论,比如知乎上这个问题:IT行业产品经理(尤其是创业的)需要懂技术吗?懂到什么程度?,以及这个:产品经...
- 『原型资源』Axure自带图标库不够用,第三方经典图标库来袭
-
今天小编为大家带来第三方经典图标库,己确认内容可用现推荐给大家。直接上手就可不用自己画哈~获取原型文档请与班主任联系!先睹为快,合适再拿走不谢:图标太多,截取部分给大家参考o(* ̄︶ ̄*)o免费领取资...
- Axure RP 8 测试版:将于今年夏天到来
-
我们一直在努力的开发AxureRP8。我认为这是对现有客户以及刚接触Axure的人的一个重要版本。我们希望看到你使用这些新特性,所以我们对现有客户免费升级。所有有AxureRP授权的客户包括标准...