方案一:基于搜狗入口 在网上能搜索到的公众号文章采集相关的信息来看来看 , 这是最多、最直接、也是最简单的一种方案 。一般流程是:
搜狗微信搜索入口进行公众号搜索选取公众号进入公众号历史文章列表通过文章列表获取文章链接 , 通过文章链接获取文章内容对文章内容进行解析入库【分析公众号文章采集方法 公众号文章采集怎么弄】采集过于频繁的话 , 搜狗搜索和公众号历史文章列表访问都会出现验证码 。直接采用一般的脚本采集是无法拿到验证码的 。这里可以使用无头浏览器来进行访问,通过对接打码平台识别验证码 。无头浏览器可采用selenium 。
即便采用无头浏览器同样存在问题:
效率低下(实际上就是在跑一个完整的浏览器来模拟人类操作)网页资源浏览器加载难以控制 , 脚本对浏览器加载很难控制验证码识别也无法做到100% , 中途很可能会打断抓取流程如果坚持使用搜狗入口并想进行完美采集的话只有增加代理IP 。顺便说一句 , 公开免费的IP地址就别想了 , 非常不稳定 , 而且基本都被微信给封了 。
除了面临搜狗/微信的反爬虫机制之外 , 采用此方案还有其他的缺点:
无法获得阅读数、点赞数等用于评估文章质量的关键信息无法及时获得已经发布公众号文章 , 只能作定期的重复爬取只能获得最近十条群发文章方案二:对手机微信进行中间人攻击 中间人攻击本是某种黑客手法 , 用于截取客户端与服务端之间的通信信息 。这种方案的思路是在手机微信和微信服务器之间搭建一个”HTTPS代理” , 用于截获手机微信获取的公众号文章信息 。一般性步骤是:
手机微信搜索一个公众号点击进入公众号历史文章页面代理识别已经进入列表页 , 进行内容截获 , 同时根据实际情况返回继续下拉或爬取新的公众号的js代码这种方案能够实现自动化的原因是:
微信公众号使用的是HTTPS协议 , 且内容未加密微信公众号文章列表和详情本质上是个Web页面 , 可以嵌入js代码进行控制这种方案的优点:
一般情况下不会被屏蔽能拿到点赞数和阅读数等文章评估信息能拿到公众号全部的历史文章当然 , 也存在很多缺点:
需要一个长期联网的实体手机前期需要设置代理 , 工作量比较大本质上还是个轮查的过程 , 而不是实时推送同样有Web加载难以控制的风险 , 且本地网络环境对其影响非常大存在着微信接口发生变更代码不再适应的情况这种方案还存在着一些变种 , 比如:
通过lua脚本控制公众号搜索而不是靠代理返回嵌入的js代码通过GUI操作脚本控制PC端微信但都存在”不能精确稳定控制”的缺点
方案三:网页微信抓包分析 在被微信反爬虫虐了很长时间之后 , 和同事大脑风暴寻找新的微信公众号文章爬取方案 。就分析有哪些能获得数据的入口 。模糊记得网页微信是有公众号文章阅读功能的 , 正好我曾把玩过一段时间个人微信机器人 , 主要使用的是ItChat这个Python包 。它实现的原理就是对网页微信进行抓包分析 , 汇总成个人微信接口 , 目标就是所有网页微信能实现的功能它都能实现 。。所以就有了一个初步的方案——通过ItChat让微信公众号文章自己推送过来 。快下班的时候和同事提了一下 , 他也挺感兴趣 , 第二天就实现出来了验证代码(ItChat实现相应功能代码非常简短 , 内容解析部分之前就做了 , 可以直接用) 。
猜你喜欢
- 联想电脑显示器无信号 解决方法教程
- 贴完面膜要不要洗脸 具体分析如下
- 教你注册第二个微信号 1个号码申请2个微信
- 简短有气势的团队口号 简短有气势的团队口号举例
- 银行国家节假日放假吗 银行国庆几号上班
- 王者七夕活动几号 王者七夕活动介绍
- 微信未关注订阅号推荐怎么关
- 抖音号在哪里买卖?抖音号转让方式有哪些?
- 路亚线一般用几号尼龙线
- 天津地铁九号线几点开啊?
