ly0 / baidupcsapi

百度网盘api
MIT License
1.2k stars 235 forks source link

远程主机captcha验证失败 #45

Closed COLDMOUNT closed 6 years ago

COLDMOUNT commented 8 years ago

使用用户名密码实例一个PCS对象,之后输入captcha验证码,本地机(OSX)测试正常,但在远程主机(Unbuntu)上总是报错,如下: https://passport.baidu.com/cgi-bin/genimage?njG4506f5737714f541024e140a5b01468a68265b060201892c open url aboved with your web browser, then input verify code > XXPS

Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 409, in init super(PCS, self).init(username, password, api_template, captcha_func=captcha_callback) File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 135, in init self._initiate() File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 190, in _initiate self._login() File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 291, in _login self._check_account_exception(result.content) File "/usr/local/lib/python2.7/dist-packages/baidupcsapi/api.py", line 331, in _check_account_exception raise LoginFailed(msg) baidupcsapi.api.LoginFailed: 登录失败,请在弹出的窗口操作,或重新登录

ly0 commented 8 years ago

这个应该是ip变化,百度需要验证

COLDMOUNT commented 8 years ago

远程主机没有图形界面,用wget访问验证链接下载图片,但还是无法通过验证

ly0 commented 8 years ago

建议是用远程主机开个代理 本机过了验证以后ip应该就白名单了

终端下输验证码的话,可以参考之前的版本在终端输出验证码,最好是在登录的机器上打开验证码,因为不知道百度有什么限制

COLDMOUNT commented 8 years ago

有没有可能是cookies的问题?用wget访问验证链接没有带cookies,是不是这个原因导致验证码错误?如果用requests库来下载图片,应该怎么带上cookies?请给个建议,谢谢

ly0 commented 8 years ago

requests带着cookies请求图片下下来,然后再带着cookies提交请求就行了呗

COLDMOUNT commented 8 years ago

我查了一下,如果直接把验证码的地址在浏览器里打开,浏览器后台显示的Cookie值和代码里self.session.cookies的值不一致,用self.session.get()得到的验证码登录失败,而浏览器打开的验证码可以正常登陆,难道self.session.cookies的值是错的么?真是非常奇怪