Получение "ошибка туннельного соединения не удалось: 403 запрещено" с mechanize и pythonanywhere

Я написал небольшое веб-приложение, используя python, mechanize и flask. Он отлично работает, когда я запускаю его локально.

при развертывании на pythonanywhere.com, Я получаю "внутреннюю ошибку сервера" со следующей трассировкой стека:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/Lanaru/mysite/gpaviewer.py", line 34, in index
    gpa = get_gpa(request.form['username'], request.form['password'])
**** File "/home/Lanaru/mysite/gpaviewer.py", line 11, in get_gpa
    br.open(r'https://websiteomitted.com/')
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 230, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_opener.py", line 193, in open
    response = urlopen(self, req, data)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py", line 344, in _open
    '_open', req)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py", line 332, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py", line 1170, in https_open
    return self.do_open(conn_factory, req)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_urllib2_fork.py", line 1118, in do_open
    raise URLError(err)
URLError: <urlopen error Tunnel connection failed: 403 Forbidden>

почему я получаю эту ошибку urlopen и как ее исправить?

1 ответов


Если вы используете бесплатную учетную запись на pythonanywhere.com тогда имейте в виду, что доступ к внешним сайтам через urllib2 ограничивается набором белый список хостов. Платный аккаунт может получить доступ к любым внешним сайтам.