Python|抓取微信公众号的问题
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|抓取微信公众号的问题相关的知识,希望对你有一定的参考价值。
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
前言
对于抓取微信公众号文章主要通过代理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的时间设为1、1.5、2秒分别实验后,发现当时间设为1、1.5时,均出现了得不到响应数据的报错,只是1.5秒比1秒所得到的数据多一些。最后发现设为2秒后,没有出现得不到数据包而报错的情况。结论:将sleep=2时,即抓取每一篇文章的间隙设为2秒时,不会出现抓取过快的情况。
总结
该博客主要是讲述小编在抓取微信公众号所遇到的主要的问题,即发送请求的相关问题,希望对读者有所帮助。
实习编辑:王文星
稿件来源:深度学习与文旅应用实验室(DLETA)
以上是关于Python|抓取微信公众号的问题的主要内容,如果未能解决你的问题,请参考以下文章