Python/Mechanize中的Http错误405/500(使用Mechanize自动登录一个网站)

Python/Mechanize中的Http错误405/500(使用Mechanize自动登录一个网站),python,http,login,mechanize,Python,Http,Login,Mechanize,以下是我想使用python/mechanize自动登录的网站地址: http://www.autohome.com.cn/tools/hometoplogin.html 这是我的代码: br = Browser() login_url = 'http://www.autohome.com.cn/tools/hometoplogin.html' cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.open(login_url) br.sel

以下是我想使用python/mechanize自动登录的网站地址:

http://www.autohome.com.cn/tools/hometoplogin.html
这是我的代码:

br = Browser()
login_url = 'http://www.autohome.com.cn/tools/hometoplogin.html'
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.open(login_url)
br.select_form(nr = 0)
br['name'] = username
br['pwd'] = password
print br.submit().read()
但是,这些代码抛出Http错误500:

File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error
有时它会抛出Http错误405:

HTTP Error 405: Method Not Allowed
现在我很困惑…请帮助我


现在我已经修复了python代码,如下所示

username = 'staryin'
password = 'zxy1985'
login_url = 'http://www.autohome.com.cn/tools/hometoplogin.html'
br = Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open(login_url)
br.select_form(nr = 0)
br['name'] = username
br['pwd'] = password
br.form.action = login_url
br.submit().read()
它还抛出http错误405,如下所示

File "build\bdist.win32\egg\mechanize\_mechanize.py", line 541, in submit
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
mechanize._response.httperror_seek_wrapper: HTTP Error 405: Method Not Allowed

谁能帮我解决这个问题?非常感谢。

如果你能用浏览器打开此页面,网站可能不允许机器人或类似你的程序访问或登录。在这种情况下,你必须通过设置你的
用户代理
标题来伪造你的身份,正如Kimvais所说。

只是一个猜测,但可能是网站根据你的
用户代理
标题做了一些令人讨厌的事情。它不起作用。它还抛出http错误405。表单操作值为“”,可能是错误的原因。那么如何在python中使用mechanize设置操作值?您是否找到了解决此问题的方法?表单操作值为“”,可能是错误的原因。那么如何在python中使用mechanize设置操作值?