Python lxml返回十进制Unicode数字,如ක න&引用;

Python lxml返回十进制Unicode数字,如ක න&引用;,python,unicode,lxml,Python,Unicode,Lxml,我正在尝试从HTML文件中提取数据。(两个标记之间的所有内容) 这是我的python代码 page = requests.get(url) source = html.fromstring(page.content) body = "" for atag in source.xpath('//div[@class="lts-txt2"]'): body = body + tostring(atag) print body 但是它返回这个&#

我正在尝试从HTML文件中提取数据。(两个标记之间的所有内容) 这是我的python代码

 page = requests.get(url)
    source = html.fromstring(page.content)

    body = ""
    for atag in source.xpath('//div[@class="lts-txt2"]'):
        body =  body + tostring(atag)
    print body
但是它返回这个
රුසියාවේ

我发现这些代码是僧伽罗语(Unicode十进制代码)——


我需要将它们转换为Unicode字符

如果希望这些值作为Unicode文本返回,那么应该将
encoding='utf-8'
传递给
tostring()
调用


这将覆盖其转义所有非ASCII字符的默认行为。

我建议将python3用于此类程序。然后用
-*-编码:utf-8-*-

tostring()
启动python脚本?为什么您要使用它,而不是直接引用文本节点?那么我需要更改什么呢?
atag.text
is将以文本形式显示文本,而不是编码为(X)HTML本身。另一方面,如果您尝试生成HTML,lxml正在创建的编码是正确的——任何正确实现的浏览器都将解码这些序列,没有理由对其进行更改。更改atag->atag.text后,它会在get_data body=body+tostring中的第58行给我这个错误文件“\get_data.py”(atag.text)lxml.etree.tostring(src\lxml\lxml.etree.c:69414)类型错误:无法序列化类型“unicode”。