То, что я пытался сделать несколько раз:
1. изменить заголовки, чтобы обмануть его, не работает
2. попробовал формы nr=0
, nr=1
и nr=2
, также не работает
3. подтвержденное имя пользователя и пароль правильный
4. тот же скрипт работал на другом подобном сайте.
Все попытки вернут ошибку:
mechanize._response.httperror_seek_wrapper: Ошибка HTTP 403: ОК
Другие существующие вопросы в stackoverflow будут иметь случаи 403: Forbidden
и 403:Forbidden by robots.txt
, но на самом деле не имеют этого уникального случая с «ОК».
# !/usr/bin/python
import mechanize
br = mechanize.Browser()
br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)
br.set_handle_equiv(False)
br.set_handle_gzip(False)
br.set_handle_redirect(True)
br.set_handle_referer(False)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'), ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'),('Accept-Encoding', 'none'),('Accept-Language', 'en-US,en;q=0.8'),('Connection', 'keep-alive')]
def login():
br._factory.is_html = True
br.open('https://circleup.com/login/')
#br.form.set_all_readonly(False)
br.select_form(nr=2)
br['username'] = '***********'
br['password'] = '***********'
br.method = "post"
br.submit()
login()
результат:
br.submit()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mechanize/_mechanize.py", line 541, in submit
return self.open(self.click(*args, **kwds))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mechanize/_mechanize.py", line 203, in open
return self._mech_open(url, data, timeout=timeout)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mechanize/_mechanize.py", line 255, in _mech_open
raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 403: OK