最近在公司做了一个这方面的项目,总结一下。顺便把项目没用到的方案做了个小demo
1. 两种抓取思路
- 抓取微信app中各个公众号的文章历史页获得文章地址
- 通过搜索引擎(搜狗微信)查询指定公众号的文章
2. 每种方法各自的弊端
- 通过微信app
- 需要使用手机或者模拟器来安装微信app
- 需要人手工在微信app上操作
- 通过搜索引擎
- 搜狗跳转到的微信公众号的历史文章列表和进一步转到的文章页面都是临时链接
- 搜狗和微信都有验证码机制
- 微信有复杂的cookie机制(requests.session无法实现)
3. 使用搜索引擎抓取的简单介绍
这个其实是一个不错的方案,但是不是我写这个的重点,使用无头浏览器来解决cookie,外接打码平台来解决验证码问题。临时链接也可以选择入库正文部分的html而不是文章地址。
4. 如何通过微信app抓取
微信app和服务器之间是通过网络来传输数据的。所以,首要目的就是抓取到它们之间通信的数据。我们不可能直接从微信app拿到数据,所以我们需要一个代理服务器,微信app和服务器通信时候走这个代理服务器,代理服务器检查过往的数据,如果是我们想要的数据就把数据传给后端进程解析。还需要嵌入一段js,用来控制页面做自动跳转,毕竟抓取系统需要尽量减少人工操作嘛。
下期已上线 构建anyproxy代理服务器
评论