0

我有一个看起来像这样的网址:

url = 'http://localhost:8080/?q=abc%26def&other_params=here'

在浏览器中访问此 url 将返回一个 xml。

我正在尝试通过 lxml 解析该 url 的响应:

tree = etree.parse(url)

这里的问题是 etree 对百分比字符进行编码,而 url 将是

url = 'http://localhost:8080/?q=abc%2526def&other_params=here'

如果我不对我的 q 参数的值进行编码,整个 url 就会变得混乱:

url = 'http://localhost:8080/?q=abc&def&other_params=here'

有什么方法可以告诉 lxml 在发送请求之前不要编码该 url 中的字符?

4

1 回答 1

1

我会说这是 lxml 的 URL 处理中的一个错误,您应该检查lxml 跟踪器中的现有报告,如果还没有,请报告它。

现在的解决方法是使用urllib2来检索您的 URL:

import urllib2

resp = urllib2.urlopen(url)
tree = etree.parse(resp)
于 2012-09-28T08:13:52.383 回答