mechanize._response.httperror_seek_wrapper: Ошибка HTTP 403: ОК

То, что я пытался сделать несколько раз:
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

person Steason Tee    schedule 31.12.2015    source источник


Ответы (1)


Вы получили Ошибка HTTP 403, что означает ошибку аутентификации. Хотя это не является ошибкой проверки подлинности прокси-сервера 407, это может означать проблему проверки подлинности прокси-сервера с помощью mechanize.

Вы работаете через прокси? Если это так, вам следует рассмотреть возможность установки ~/.bash_profile или ~/.profile как;

export {http_proxy,https_proxy,ftp_proxy}=http://<username>:<pass>@<proxy_address>:<port>

Если вы уже установили прокси-сервер, вы также можете получить эту ошибку, если запускаете свой скрипт через crontab. Если это так, вы должны установить параметры прокси в crontab как;

http_proxy=http://<username>:<pass>@<proxy_address>:<port>
https_proxy=https://<username>:<pass>@<proxy_address>:<port>

Я надеюсь, что это работает.

person Orhun D.    schedule 07.09.2016