爬取微信公众号文章
Bilibili视频演示:https://www.bilibili.com/video/BV1vN411D7Y3/
注意,除非你要断点续传,否则删除目录下conf.ini和url.json再启动!!!!
Chrome插件安装链接 https://chrome.google.com/webstore/detail/edit-this-cookie/fngmhnnpilhplaeedifhccceomclgfbg/reviews
Edge浏览器可以搜同名插件:EditThisCookie
进入微信公众号后台网页,打开Chrome浏览器控制台,勾选网络(Network),勾选Fetch/XHR,随便点击一个请求,点击载荷(Payload),里面就有token: 829****43
参数,这个数字就是下一步需要的。
[
{
"COOKIES": [
{
"domain": ".qq.com",
"expirationDate": 1727226754,
"hostOnly": false,
"httpOnly": false,
"name": "_clck",
"path": "/",
"sameSite": "unspecified",
"secure": false,
"session": false,
"storeId": "0",
"value": "12334441212|1|ffc|0",
"id": 1
},
// 这里省略若干行
{
"domain": "mp.weixin.qq.com",
"expirationDate": 1730207739.668822,
"hostOnly": true,
"httpOnly": true,
"name": "xid",
"path": "/",
"sameSite": "unspecified",
"secure": true,
"session": false,
"storeId": "0",
"value": "8f43a3ae8f1e8abcdedd62645ec461c1",
"id": 18
}
],
"TOKEN": "829****43"
}
]
COOKIES冒号后面的就是EditThisCookie插件导出的cookie
# 创建虚拟环境(仅首次)
python3 -m venv venv
# 进入虚拟环境(运行python3 main.py前执行一次即可)
source venv/bin/activate
# 安装依赖(仅首次)
pip install -r requirements.txt
# 运行项目
python3 main.py
如果出现了这个错误:Tkinter is required for pymsgbox 就使用homebrew安装python-tk:
brew install python-tk
1、下载并解压Chrome.rar;
2、运行main.exe;
3、填入信息,点击“启动”即可。
4、如果想修改UI,可以安装这个:Qt Designer
使用公众号写文章时支持搜索其他公众号的文章的方式,来实现爬取指定公众号所有文章的目的。
通过selenium登录获取token和cookie,再自动爬取和下载
- 使用前提:
1、申请一个免费的微信公众号,个人订阅号即可(https://mp.weixin.qq.com)
- 下载文章文字内容到txt
- 下载文章图片
- 保存HTML文件,并将图片链接指向本地
- 添加按时间范围下载
- 添加cookie登陆,不成功才selenium浏览器登陆
- 增加记住密码功能
- 修复一些问题,如requests卡死
- 添加按关键词下载
- 多线程优化下载速度
- 增加断点续传功能(可能存在bug,推荐不要用)
- 拟增加备用公众号功能(暂未完成)
- 下载PDF格式
- 不需要再手动下载Chrome,启动时会自动下载
创建虚拟环境
conda create -n wechat python=3.9 -y
进入虚拟环境
conda activate wechat
安装三方库
pip install -r requirements.txt
对于mac用户,安装pyqt5可能会报错,可以尝试:
brew install pyqt@5 cp -r /opt/homebrew/Cellar/pyqt@5/5.15.7_2/lib/python3.9/site-packages/* /Users/songxf/miniconda3/envs/wechat/lib/python3.9/site-packages/
然后就可以导入了:
import PyQt5
运行脚本
python main.py
打包exe(生成在dist下)
pyinstaller -F -w -i icon.ico main.py
- 爬取间隔太快,容易遇到“访问频繁”或“freq_control”,这时候可以删除cookie.json,再重新运行软件,换个号继续运行;
- Qt打包完实在是太大了,有大佬会转成Tkinter吗?
欢迎关注微信公众号:xfxuezhang