Python中的安全XML解析
你好,我可以解析一个普通的XML文件,比如用这个代码:xml = lxml.etree.parse('http://abc.com/A.xml')。但是现在我有一个需要用户名和密码才能访问的路径,请问有没有办法把用户名和密码输入进去,然后解析这个网址,就像连接数据库时可以在连接字符串里提供用户名和密码一样?
2 个回答
3
是的,这是可能的。在用 lxml
解析 XML 文档之前,你需要通过发送一个 HTTP 请求来获取这个文档,并且这个请求要正确处理 HTTP 基本认证或摘要认证。比如,可以使用 urllib2.HTTPBasicAuthHandler
,就像这个解决方案中提到的那样:Python urllib2 HTTPBasicAuthHandler
3
大家好,我找到了一种方法,可以解析带密码保护的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)