Python中的安全XML解析

1 投票
2 回答
2258 浏览
提问于 2025-04-16 09:46

你好,我可以解析一个普通的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)

撰写回答