WechatSogou icon indicating copy to clipboard operation
WechatSogou copied to clipboard

关于验证码解决的问题。就是禁止验证码出现

Open legend-zl opened this issue 4 years ago • 7 comments

其实你们看源码的话就可以发现,作者利用requests.session进行请求,但是没有设置:User-Agent,那么微信肯定会识别为程序,因为发现这不是浏览器的请求行为。所以怎么处理验证码你们应该懂了吧。

legend-zl avatar Jan 17 '21 01:01 legend-zl

但是有一部分请求,例如:https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSzOXfgNohYpadVuXD7XpFmtJQvij0l5PmlqXa8Fplpd98-9m4NriLkMKz95tGweEaRLEOVdxZxwVF0roPbwULdXLKJc3L0a6nELziWKz2hGTZHLJ0k0IdOUGwq3IH3OlvKjhmGGXNilRbYsrFDYxLhmQ3IIZfgr8IlGsHX3y6n1yN5Jrvr2FiV_xWKjM_ZoxsSjvN__yP7mQReQSpEtXK83f3q8uRDTfkw..&type=2&query=Linux%E7%A7%81%E6%88%BF%E8%8F%9C&token=79989590789FA8452F2A9621DC373879306B70C1600399E5&k=89&h=5 是需要验证码的,设置了User-Agent仍然会出现验证码

legend-zl avatar Jan 17 '21 01:01 legend-zl

好了。到现在已经完全搞清楚验证码的问题了。 首先,如果查询某一个微信内容,例如:Python学习方法。 这个请求在项目中没有添加User-Agent所以会导致验证码出现,在代码api.py的362行。而获取每一个条目的具体内容的时候,由于使用了是前者不一样的requests.session,导致微信认为这是两次不同的会话,所以也需要验证码。 整体的解决方式是,在代码中的session上添加User-Agent,然后所有的请求使用同一requests.session。

legend-zl avatar Jan 17 '21 04:01 legend-zl

@legend-zl 麻烦可以贴一下你的代码,或者给个分享链接

YangZhengHuan avatar Jan 28 '21 01:01 YangZhengHuan

@legend-zl 那具体怎么添加user-agent呢,要去改动wechatsougou库吗

codeHessel avatar Feb 21 '21 02:02 codeHessel

我调试了一下,不是你说的 search_article 方法没有添加User-Agent的问题,框架作者在每次http请求中都有添加User-Agent。

Deali-Axy avatar Apr 14 '21 11:04 Deali-Axy

验证码问题可以直接用ddddocr 模块解决

import ddddocr OCR = ddddocr.DdddOcr(ocr=True,show_ad=False,use_gpu=True,old=True,beta=True) res= ws_api.search_article('北京大学',identify_image_callback=OCR.classification)

rui7157 avatar Oct 05 '22 11:10 rui7157

验证码问题可以直接用ddddocr 模块解决

import ddddocr OCR = ddddocr.DdddOcr(ocr=True,show_ad=False,use_gpu=True,old=True,beta=True) res= ws_api.search_article('北京大学',identify_image_callback=OCR.classification)

但是返回的res也不是计划的结果

sunmichace avatar Nov 05 '23 13:11 sunmichace