безопасный синтаксический анализ XML в Python - PullRequest
1 голос
/ 11 января 2011

Привет, я могу разобрать обычный xml, такой как xml = lxml.etree.parse ('' http://abc.com/A.xml'), но теперь у меня есть аутентификация этого пути с использованием имени пользователя и пароля, возможно ли вводить имя пользователя и пароль и анализURL-адрес, как при подключении базы данных, где вы можете дать пароль имени пользователя в строке подключения

Ответы [ 2 ]

3 голосов
/ 12 января 2011

Ребята, я нашел способ разобрать защищенный паролем XML, это то, что я сделал.

import urllib2
import base64
theurl = 'http://abc.com/A.xml'

username='AAA'
password='BBB'

req = urllib2.Request(theurl)


base64string = base64.encodestring(
            '%s:%s' % (username, password))[:-1]
authheader =  "Basic %s" % base64string
req.add_header("Authorization", authheader)
try:
    handle = urllib2.urlopen(req)
except IOError, e:
    print "It looks like the username or password is wrong."
xml = handle.read()
inputXml  = etree.fromstring(xml)
3 голосов
/ 11 января 2011

Да, это возможно.Перед синтаксическим анализом XML-документа с помощью lxml необходимо получить его, сделав HTTP-запрос, который правильно обрабатывает базовую / дайджест-аутентификацию HTTP.Например, с urllib2.HTTPBasicAuthHandler, как в этом решении: Python urllib2 HTTPBasicAuthHandler

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...