采集目标: 微信公众号文章的阅读数、在看数、评论数、评论列表,还有微信公众号的账号基本信息。
采集难点: 采集以上数据需要客户端的一些参数,比如 x-wechat-key 、 __biz 、appmsg_token 、pass_ticket等。
采集方式: 通过Windows客户端+mitmproxy的方式获取加密参数
备注: 一个微信号每天只能获取5000-8000篇文章的阅读/点赞/评论等数据
github: https://github.com/lixi5338619/weixin-spider
1. mitmproxy安装:
在python3下直接使用pip进行安装,如果下载缓慢需要换源下载。
安装完成之后,在cmd命令行中输入 mitmdump ,默认是8080端口。
启动成功后,下载mitm证书:访问 http://mitm.it/
点击windows,下载安装。
2. windows本地代理:
3. 数据库
mysql: 下载完成之后启动服务,修改项目settings配置文件,创建数据库weixin_spider,字符集utf8mb4。
redis: 下载安装后启动服务,修改项目settings配置文件,以及addons.py文件。
4. 本地模块
参照 requirements文件安装 python库,如有遗漏,根据提示自行安装
首先确定使用环境安装完毕,然后请确保端口(5000、8080)不冲突。
1、确定mysql 、redis服务开启状态,并可正常连接
- 运行 wx_monitor.py ,确定程序是否成功启动
- 运行 manage.py ,打开网页 http://127.0.0.1:5000/ ,确认成功开启web服务。
5、开启mitmproxy,确保可以拦截到数据(需要cd到tools目录下)
点击启动,即可进行采集。
weixin-spider
│ manage.py (web服务启动文件)
│ README.md (项目说明文档)
│ requirements.txt (项目安装包)
│ wx_monitor.py (任务调度中心)
│
├─api
│ │ crawlerapi.py (爬虫文件)
│ │ init.py
│ │
├─exceptions (异常捕获目录)
│
├─tools
│ │ addons.py (mitm配置)
│ │ handle.py (自动化操作)
│ │ keys.py (redis-keys管理)
│ │ proxy.py (本地代理)
│
├─webapp
│ │ models.py (数据库表模型)
│ │ _init_.py
│ ├─static (静态资源目录)
│ ├─templates(html文件目录)
│ │
│ ├─wxapp
│ │ │ selffilter.py (过滤器)
│ │ │ views.py (视图文件、接口)
github: https://github.com/lixi5338619/weixin-spider