Я пытаюсь получить некоторые XML-файлы с веб-сайта через request.get Это работает отлично, если я передаю имя пользователя и пароль с помощью строки, но не тогда, когда Я пытаюсь передать их через vars, полученные с помощью get_password.python - request.get с HTTPBasicAuth работает с текстом, а не с var
Я проверил каждую парную метку, медленно заменяя каждый бит в request.get, и все идет не так, как только я использую var для имени пользователя или пароля (или для этой части). Кажется, что ни одна из них не отправляется вместе с моей просьбой.
Ошибка, которую я получаю, заключается в том, что у дерева нет содержимого для разбора (в основном сайт отказался от моего запроса).
Чтобы сделать это ясно: код действительно работает, если я не использую часть переменных в запросах.get.
Os используется для Windows 10 и Anaconda 4.3 framework (python 3.6). (примечание: я удалил url/username в codenippet, но сайт использует HTTPBasicAuth точно :)) Я получаю очень скрытое ощущение, что это какая-то очевидная вещь, которую я пропускаю, или ошибка, которая требует раздавливания.
import requests
from requests.auth import HTTPBasicAuth
import xml.etree.ElementTree as ET
from keyring import set_password
from keyring import get_password
a = '<url>'
username = '<workingusernameforsite>'
set_password('sn', username, '<verysecretpassword')
wachtwoord = str(get_password('sn', username))
page = requests.get(a, auth=HTTPBasicAuth(username, wachtwoord))
tree = ET.fromstring(page.content)
for element in tree.findall(".//number"):
print(element.text)