Http Ошибка 405/500 в Python / Mechanize (используя механизированный автоматический вход на один сайт) - PullRequest
4 голосов
/ 16 июня 2011

Вот адрес веб-сайта, на котором я хочу использовать 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 Error 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 Error 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

кто может помочь мне решить эту проблему? Большое спасибо.

1 Ответ

0 голосов
/ 16 июня 2011

Если вы можете открыть эту страницу с помощью браузера, есть вероятность, что веб-сайт не позволяет ботам или программам, подобным вашей, осуществлять доступ или вход в систему. В этом случае вы должны подделать свою личность, установив заголовок User-Agent как Kimvaisсказал.

...