我在html文档中有以下文字:
<a href="#">�'ам интересна информация</a>
我正在使用以下表达式来提取文本:
row.xpath("string(./td[@class='col2 td-tags']/h3/a/text())")
此表达式适用于简单的英语,但对于上面的字符串,它会抛出此错误:
'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
答案 0 :(得分:6)
在HTML中,&amp; #xxx不指定文档编码中的字节;它总是一个unicode代码点。
因此,您不能将UTF-8放入类似的HTML中。
答案 1 :(得分:2)
该文件的编码是什么?什么字符开始<a>
中的文字?它可能是无效的UTF-8。
答案 2 :(得分:1)
我首先解码了页面内容(包括字符串<a href="#">�'ам интересна информация</a>
)以将任何不可转换的字符串替换为问号,并且它有效!
即。 page_contents_string = page_contents_string.decode("utf-8", "replace")