使用搜狗微信入口制作微信文章采集器API
优采云 发布时间: 2020-08-06 20:05移动客户端使用提琴手或查尔斯等其他捕获工具捕获数据包,这是一种相对主流的方法(我觉得是orz),是一种更有效的方法,可以快速捕获微信官方帐户信息和历史新闻. 该方法也有缺点: cookie很快过期,大约需要半天. 还可以专门获取某些官方帐户的历史信息. 通过模拟微信登录自动获取cookie似乎非常困难. 我很无聊,无法实现. 看来微信登录是TCP协议?
搜狗微信门户比其他门户友好得多. 应该是微信搜索引擎和搜狗有合作,所以搜狗可以进入微信搜索. 搜狗微信有两种类型,一种是通过关键词搜索文章,另一种是通过关键词搜索官方账号,搜索到的微信账号最多只能获得十笔最新新闻推送(这意味着指定的公众不能通过这种方法抓取历史新闻). 该方法还有一些应用场景,例如获取大量有关某个关键字的文章,例如执行计划任务,或者以一定间隔抓取某个微信官方帐户的最新十次推送以获取其最新推送. 它比网上的微信要好得多. 搜狗微信更新也是实时且直接相关的.
我对appium自动化和Xposed框架了解不多. 鸦片类似于硒. 为了在移动终端上进行自动化测试,您可以模拟点击. Xposed框架有很多工作要做. Xposed可以执行一些其他功能,而无需修改apk. 爬虫自然是可能的. 此外,它还可以自动抓取红包,自动回复机器人以及修改微步数等骚动操作.
我写爬虫游戏已有一段时间了. 我个人认为,除了具有防爬网和爬网的效率外,还有另一个领域很难实现. 履带的稳定性和坚固性需要考虑到许多异常情况,并且是合理有效的. 在这一点上,我认为我仍然需要向主要的爬虫学习. (我觉得我一直在谈论很多东西,还没有开始做我的身体(orz),请不要对那个觉得我很冗长的大个子生气. )
使用搜狗微信编写一个爬虫界面,代码非常简单,只有两百行代码. (我在这里不得不抱怨. 我在python中写太多了. 我总是有一种幻想,我很尴尬,编程很简单. 几行代码可以实现非常强大的功能. 这时,我需要编写CPP并冷静下来,让自己知道什么是真正的编程. )
以下记录了编写此采集器界面脚本的过程:
1. 页面请求分析(以官方帐户搜索为例):
您可以看到第一个http请求数据包是我们想要的结果,请检查其查询字符串,如下所示:
它看起来并不简单. 我们获得以下信息:
请求网址是
请求类型为Get
请求参数如上所示
发现将请求参数tyepe更改为2是为了获得关键字搜索文章的结果
这相对简单
2. 模拟页面请求:
我们直接使用url,请求参数params和Google Chrome的用户代理请求,发现我们可以成功获取所需页面的源代码,然后在下方获得第一个官方帐户搜索结果. 是的(这意味着需要正确指定官方帐户名称,如果过于模糊,则有可能获得类似的官方帐户结果).
3. 分析页面:
首先确定爬行思路,第一步是获取微信公众号链接,然后通过微信公众号链接获取最新的十项推送相关信息,包括标题,日期,作者,内容摘要,内容链接(实际上,我们发现,通过微信推送链接,我们可以轻松获取推送的主要内容,但不包括喜欢和阅读的次数. 这些数据只能在微信移动终端上查看. 如果有一次机会,它将在下次记录. 在您的手机微信上下载爬虫的过程.
因此第一步,我们将获得官方帐户链接:
这里我们可以直接使用正则表达式提取(这种简单方法不需要xpath和bs4. 依赖标准库和第三方库仍然有所不同. )
(很抱歉被水印阻止,请更改一个. )
第二步是根据微信官方账号链接获取最近十条推送消息:
(我只写过一篇关于orz的文章,我会继续努力. )
ctlr U查看网页的源代码,并发现原创信息位于js变量中.
易于处理,继续常规提取,将json格式的字符串转换为python中的字典,有两种方法,一种是使用json.loads方法,第二种是使用内置的eval方法. 两种方法之间存在一些差异,例如单引号和双引号. json格式使用双引号,而python词典中通常使用单引号.
好的,已经获得了原创的推送信息数据,但是我们不需要很多信息,因此我们可以将其删除. 值得一提的是,datetime的值是一个时间戳,我们需要将其转换为直观的Time表达式.
至此,微信公众号上的抓取工具已基本解决. 接下来,需要将其封装为一个类. 代码的主要部分如下.
此外,我还写了关于关键字搜索文章,AccountAPI,ArticleAPI的爬网程序接口,父类是AP类,并且该API类具有query_url,params,header,_get_response,_get_datetime以及其他用于由AccountAPI和ArticleAPI共享.
代码位于github仓库中,如果您有兴趣,可以看看
放置两个屏幕截图以供使用
(ArticleAPI)
(AccountAPI)
结论:
诸如此类的原创爬虫将其称为api,我有点大胆. 这只是一个小麻烦,很难做到优雅,您需要向大兄弟学习.