微信采集系统项目文档

    • 环境配置
        • 1. mitmproxy安装:
        • 2. windows本地代理:
        • 3. 数据库
        • 4. 本地模块
    • 准备工作
    • 启动测试
    • 目录结构

 


采集目标: 微信公众号文章的阅读数、在看数、评论数、评论列表,还有微信公众号的账号基本信息。

采集难点: 采集以上数据需要客户端的一些参数,比如 x-wechat-key__bizappmsg_tokenpass_ticket等。

采集方式: 通过Windows客户端+mitmproxy的方式获取加密参数

采集流程:
windows微信公众号采集系统_采集系统

备注: 一个微信号每天只能获取5000-8000篇文章的阅读/点赞/评论等数据

github: https://github.com/lixi5338619/weixin-spider


环境配置

1. mitmproxy安装:

在python3下直接使用pip进行安装,如果下载缓慢需要换源下载。

pip install mitmproxy==4.0.4 --use-feature=2020-resolver

安装完成之后,在cmd命令行中输入 mitmdump ,默认是8080端口。

mitmdump

启动成功后,下载mitm证书:访问 http://mitm.it/
点击windows,下载安装。

如果网页显示 If you can see this, traffic is not passing through mitmproxy。
按照第二步设置windows本地代理后再次安装。
windows微信公众号采集系统_采集系统_02

2. windows本地代理:

windows10本地: 设置 ==> 网络 ==> 代理 ==> 手动设置代理 中打开使用代理并将IP地址修改为127.0.0.1 端口修改为默认8080或修改后的端口。 (记得点击保存)
windows微信公众号采集系统_采集系统_03

3. 数据库

mysql: 下载完成之后启动服务,修改项目settings配置文件,创建数据库weixin_spider,字符集utf8mb4。

create database weixin_spider  DEFAULT CHARACTER SET utf8mb4;

redis: 下载安装后启动服务,修改项目settings配置文件,以及addons.py文件。

4. 本地模块

参照 requirements文件安装 python库,如有遗漏,根据提示自行安装


准备工作

首先确定使用环境安装完毕,然后请确保端口(5000、8080)不冲突。

1、确定mysql 、redis服务开启状态,并可正常连接

2、运行 webapp\models.py 文件创建数据库表,查看表结构是否生成正确
windows微信公众号采集系统_采集系统_04
3、登录微信PC版,找到 文件传输助手 对话框, 双击 文件传输助手 ,文件传输助手会自动弹出单独的对话窗口,把对话框锁死在屏幕左上角,具体位置可能需要根据显示器调整。
windows微信公众号采集系统_采集系统_05
4、依次运行py脚本(亦可运行.sh文件代替)

  • 运行 wx_monitor.py ,确定程序是否成功启动
  • 运行 manage.py ,打开网页 http://127.0.0.1:5000/ ,确认成功开启web服务。

5、开启mitmproxy,确保可以拦截到数据(需要cd到tools目录下)

cd tools/ && mitmdump -s ./addons.py  --ssl-insecure

windows微信公众号采集系统_采集系统_06


启动测试

准备工作完成之后,访问 http://127.0.0.1:5000/ 。
windows微信公众号采集系统_采集系统_07
添加公众号,该公众号需要微信已经关注过

点击启动,即可进行采集。

windows微信公众号采集系统_采集系统_08


目录结构

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