2015-08-19 3 views
0

Я пытаюсь реплицировать команду wget в сценарии Python. Команда Wget идет вдоль этих линий:Пользовательские открыватели или заголовки запроса

wget --user user --password pass http://serveraddress/ 

FYI, и, как вы можете догадаться, это простая проверка подлинности, который является обязательным. Вам будет предложена всплывающая форма, в которой вы вводите свое имя пользователя и пароль. Таким образом, если вы не вводите учетные данные, вы не сможете связаться с адресом.
В моем сценарии я предлагаю пользователю ввести его имя пользователя и пароль, и я их храню. Пока все имеет смысл. Однако после этого я действительно запутался. Причина в том, что я прочитал две разные вещи в Интернете в целом и на самом деле в Python Essential Reference о urllib2.urlopen() (FYI, я должен использовать только стандартную библиотеку, поэтому запросы для меня не подходят).
Итак, PER говорит: «Основная функция urlopen() не обеспечивает поддержку аутентификации, куки или других дополнительных функций HTTP. Чтобы добавить поддержку, вы должны создать свой собственный объект-открыватель с помощью функции build_opener(). Другие люди, например here, скажут, что вам нужно создать объект Request и добавить к нему заголовки. Итак, что мне здесь не хватает? Любая помощь очень ценится.

ответ

2

Используйте пакет requests. Ваш вопрос, на самом деле, очень первый пример они приводят в их документе:

r = requests.get('https://api.github.com/user', auth=('user', 'pass')) 

Однако, если вы совершенно не можете использовать requests, авторы обычно описывают, как использовать эквивалентные функциональные возможности в urllib2. Перейдите на страницу requests documentation page, нажмите «Смотрите similar code, without Requests» и украдите код urllib2.

+0

Как я упоминал в вопросе, я должен использовать стандартную библиотеку, которую я боюсь. Таким образом, запросы не являются вариантом. :( – Mahmoud

+0

В этом случае перейдите на страницу документации ['request'] (http://www.python-requests.org/en/latest/), нажмите« См. [Аналогичный код без запросов] (https: //gist.github.com/973705) »и украсть код« urllib2 ». –

+0

Спасибо. Я сделаю это. – Mahmoud

Смежные вопросы