Определение защищенных паролем сайтов при использовании urllib в python - PullRequest
2 голосов
/ 12 августа 2011

Привет, у меня есть длинный ряд изображений (например, site.com/pic.jpg), которые я получаю для своей программы (в Python v2.6).Я использую urllib.urlretreive().Иногда URL запрашивает у меня имя пользователя и пароль.Поэтому я поместил urllib.urlretreive() в попытку /, за исключением того, чтобы избежать этих URL, но мне все еще нужно вставить поддельное имя пользователя и пароль, чтобы вызвать ошибку, которая вызывает попытку /, кроме пропуска этого URL.Есть ли способ, который я могу почувствовать, когда есть запрос пароля и автоматически пропустить URL?Это очень длинный список, и я не хочу ждать здесь все время, чтобы время от времени нажимать Enter ... Спасибо

1 Ответ

2 голосов
/ 12 августа 2011

Если на сайте есть HTTP-аутентификация, вам нужно добавить заголовок к вашему запросу, чтобы вставить имя пользователя и пароль (фальшивый или иной). Вот как вы можете сделать это, используя urllib2.

import base64
import urllib2

headers = {'Authorization': 'Basic ' + base64.encodestring('[username]:[password]')}
req = urllib2.Request(url, data, headers)
resp = urllib2.urlopen(req).read()

Возвращается urllib2.HTTPError: HTTP Error 401: Unauthorized, если имя пользователя / пароль неверны, но сервер игнорирует аутентификацию, если она не требуется.

...