Python|抓取微信公众号的问题

原创
09/07 00:00
阅读数 56

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。


前言

对于抓取微信公众号文章主要通过代理ip抓包进行的操作,总会出现一些问题,以下问题导致无法抓包。


解决方案

微信账号无法抓包问题:

{'ret': -6, 'errmsg': 'unknownerror', 'home_page_list': []}

对于微信账号无法抓包问题,主要出现在python请求代码的问题。

当我们所get所返回到的响应内容出现'msg_count':0值时,代表当前页面所获取的文章为零,这时如果没有停止get请求,即一直发送get请求;

在发送一定次数时就会出现{'ret':-6, 'errmsg': 'unknown error', 'home_page_list': []}响应,get不到我们想要得到的数据。

我们这时会发现如果再用该微信账号去抓取其它的公众号get就会直接返回{'ret': -6, 'errmsg': 'unknown error', 'home_page_list': []}响应,猜测:此时账号被服务器识别,无法返回响应。当换了一个微信账号时,成功返回并抓到了响应的数据。故得出结论:当我们在返回值中出现'msg_count':0时,未终止程序,继续get就会出现账号无法抓取数据包的情况,期限是1天,1天后即可继续抓取。


请求发送过快

当请求发送过快时,也会导致请求响应得不到相应的数据。将sleep的时间设为11.52秒分别实验后,发现当时间设为11.5时,均出现了得不到响应数据的报错,只是1.5秒比1秒所得到的数据多一些。最后发现设为2秒后,没有出现得不到数据包而报错的情况。结论:将sleep=2时,即抓取每一篇文章的间隙设为2秒时,不会出现抓取过快的情况。



总结

该博客主要是讲述小编在抓取微信公众号所遇到的主要的问题,即发送请求的相关问题,希望对读者有所帮助。




实习编辑:王文星

稿件来源:深度学习与文旅应用实验室(DLETA)

本文分享自微信公众号 - 算法与编程之美(algo_coding)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部