Python+;lxml+;etree编码问题
我正在尝试使用以下代码解析某些页面:Python+;lxml+;etree编码问题,python,encoding,lxml,elementtree,Python,Encoding,Lxml,Elementtree,我正在尝试使用以下代码解析某些页面: import urllib.request import requests from lxml import etree s = requests.session() s.headers.update({ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0' }) results = open("res.
import urllib.request
import requests
from lxml import etree
s = requests.session()
s.headers.update({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0)
Gecko/20100101 Firefox/45.0'
})
results = open("res.txt", "w")
for i in range(510077, 2780673):
results = open("res.txt", "a")
print(i)
url = "url" + str(i) + "&print=true"
try:
content = s.get(url).text
tree = etree.HTML(content)
a = str(tree.xpath("//*[@class='prob_nums']")[0].text)
b = etree.tostring(tree.xpath("//*[@class='pbody']")[0])
c = etree.tostring(tree.xpath("//*[@class='nobreak solution']")[0])
results.writelines("%s %s %s" % (a, b, c))
results.close()
except Exception:
print("error")
但在输出方面存在问题:
(片段)
&1053а доске написа
如何将这些符号转换为普通文本?谢谢您您可以使用
例外情况除外作为e:
打印(e)
相反,错误消息可以帮助您尝试清晰地打印异常消息,但没有错误。它是正常输出的一部分,没有任何错误。这只是编码方面的一个问题,我不知道如何解决您正在使用tostring()打印xml,因此这就是您得到的结果,即xml。也许你需要的是看到解码(未转义)版本?您是否尝试读取xml.sax.saxutils escape()和unescape()的文档。Mmm。。。谢谢使用html.parser.unescape有帮助。您可以使用异常作为e:
打印(e)
,相反,错误消息可以帮助您尝试清晰地打印异常消息,但没有错误。它是正常输出的一部分,没有任何错误。这只是编码方面的一个问题,我不知道如何解决您正在使用tostring()打印xml,因此这就是您得到的结果,即xml。也许你需要的是看到解码(未转义)版本?您是否尝试读取xml.sax.saxutils escape()和unescape()的文档。Mmm。。。谢谢使用html.parser.unescape会有所帮助。
<p class="left_margin">На доске на­пи­са