其他
再见,itchat!再见,网页版微信!
The following article is from 未闻Code Author kingname
requests
甚至是urllib
和正则表达式的皮毛,就开始写爬虫疯狂从网上爬数据。这些爬虫几乎没有做任何隐藏自己的举动,不换IP,不设置headers,不限制速度,极易被有反爬的网站封锁,极易给没反爬的小网站造成流量压力。UserAgent
。于是,他们真的就只在headers设置UserAgent,其他项一概不设置。你给他指出来,他还振振有词:你看我这样能爬到数据啊,headers里面其他项目没有用。headers
。运行效果如下图所示:requests
不设置headers请求这个URL,运行效果如下图所示:UserAgent
看看效果:UserAgent
,与用浏览器访问的 Headers
还是有很多不一样的地方。缺了很多项。网站只需要检测缺的这几项,就能确定你是用程序发起的请求还是用浏览器发的请求。wxpy
或者 itchat
这种第三方库通过Python控制自己的微信号,实现很多自动化操作。但不久以后就反馈说自己被限制登录网页版微信了,以为是不是自己的行为被微信发现了,例如一秒钟内发了几十条消息,或者同时回复了好几个人的消息。wxpy
的源代码中,涉及到网络请求的地方:wxpy
是基于itchat
二次开发的,登录功能是通过 itchat 来实现的。我们再来看看itchat里面发起网络请求的地方:self.core.s
就是一个 requests 的 Session,如下图所示:headers
里面只放了UserAgent
,其他字段都没有放。所以在你登录的瞬间,微信就已经知道你这个账号没有用浏览器登录了!requests
请求网址,连headers
都没有设置,如下图所示:HTTP
是无状态的,如果你要爬的网站不需要登录,那么也许你频繁更换 IP 有用(阿布云的代理池就是被这样污染的)。wxpy
登录网页版微信没问题,这个时候你的可疑性积分还不够高,可能确实有一些老古董浏览器的 Headers
就是少了很多项?