Python urllib2: как игнорировать HTTPError 401 - PullRequest
0 голосов
/ 27 июля 2010

Я хочу получить доступ к веб-странице с помощью urllib2 и получаю сообщение об ошибке HTTP 401: не авторизовано.

Теперь моя проблема заключается в том, что эта страница не требует аутентификации при использовании таких браузеров, как Firefox.Только когда я использую Google Chrome, появляется диалоговое окно аутентификации.Хотя это происходит только после полной загрузки страницы.Поэтому я могу просто отменить аутентификацию и использовать страницу как обычно.

Кто-нибудь знает, как я могу открыть эту веб-страницу без аутентификации.Большое спасибо!

PS URL страницы: http://61.19.248.15/$sitepreview/sampran.go.th/

Ответы [ 3 ]

1 голос
/ 24 сентября 2010

Это одна из лучших статей об аутентификации.

http://www.voidspace.org.uk/python/articles/authentication.shtml

0 голосов
/ 18 января 2014

Я обхожу эти ошибки следующим образом:

    def append_text(string,n):
      i=1
      while i<n:
        i = i+1
        url = string + str(i)
        try:
            f = urllib.urlopen(url)
            s = f.read()
            ...
        except IOError, e:
          if hasattr(e, 'code'):
            print 'We got an error'
            print e.code
0 голосов
/ 27 июля 2010

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

...