當我得到一個網頁,我用UnicodeDammit將其轉換爲UTF-8編碼,就像:python lxml模塊在內部使用哪種編碼?
import chardet
from lxml import html
content = urllib2.urlopen(url).read()
encoding = chardet.detect(content)['encoding']
if encoding != 'utf-8':
content = content.decode(encoding, 'replace').encode('utf-8')
doc = html.fromstring(content, base_url=url)
但是當我使用:
text = doc.text_content()
print type(text)
輸出爲<type 'lxml.etree._ElementUnicodeResult'>
。 爲什麼?我認爲這將是一個utf-8字符串。
除非它不是。如果'some_str'是一個'_ElementUnicodeResult',Path('foo/bar')/ some_str'將會失敗,因爲'intern(some_str)'會失敗 –