Моя цель - получить доступ к веб-сайту, который использует HTTP-аутентификацию, используя python.Я могу открыть веб-сайт из моего веб-браузера, и заголовок говорит мне, что я должен использовать HTTBDigestAuth:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Authorization: Digest username="user", realm="CG Downloads", nonce="cTN0pKxqBQA=e46ad250f42f73e9076ebc97c417f0d38bac094a", uri="/fileadmin/teaching/2017/WS/adip/exercises/adip-uebung-00-.pdf", algorithm=MD5, response="5a57ddbcd1b20444100a91b1967a2782", qop=auth, nc=00000001, cnonce="5a6b041b4113bb9a"
Connection: keep-alive
Cookie: fe_typo_user=76b7e7e25372f782d94e91b51b854568
Host: cg.cs.uni-bonn.de
Referer: http://cg.cs.uni-bonn.de/de/lehre/ws-2017/vorlesung-algorithmisches-denken-und-imperative-programmierung/
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0
Однако, когда я пытаюсь перейти на страницу, используя запросы и HTTPDigestAuth, я получаю «401 Unauthorized» какответ.
import logging
import requests
from requests.auth import HTTPDigestAuth
try:
import httplib
except ImportError:
import http.client as httplib
httplib.HTTPConnection.debuglevel = 1
logging.basicConfig(level=logging.DEBUG)
url = 'http://cg.cs.uni-bonn.de/fileadmin/teaching/2017/WS/adip/exercises/adip-uebung-00-.pdf'
response = requests.get(url, auth=HTTPDigestAuth('user', 'pass'),
timeout=10)
print(response.status_code)
print(response.headers)
print(r.text)
Я использую неправильный метод авторизации или мой код неверен?Я ценю любую помощь, которую вы можете мне оказать.
РЕДАКТИРОВАТЬ: Я пытаюсь получить доступ к сайтам на cg.cs.uni-bonn.de, например http://cg.cs.uni -bonn.de / fileadmin / обучение / 2017 / WS / ADIP / упражнения / ADIP-uebung-00-.pdf