簡體   English   中英

lxml unicode輸出問題

[英]lxml unicode output issue

python和lxml的新手,請耐心等待。 現在卡住了似乎是unicode的問題。 我嘗試了.encode,沒有運氣,很漂亮的湯的unicodedammit。 曾經搜索過論壇和網絡,但是我缺乏python技能,因此未能將建議的解決方案應用於我的特定代碼。 感謝任何幫助,謝謝。

碼:

import requests
import lxml.html

sourceUrl = "http://www.hkex.com.hk/eng/market/sec_tradinfo/stockcode/eisdeqty.htm"

sourceHtml = requests.get(sourceUrl)

htmlTree = lxml.html.fromstring(sourceHtml.text)

for stockCodes in htmlTree.xpath('''/html/body/printfriendly/table/tr/td/table/tr/td/table/tr/table/tr/td'''):
    string = stockCodes.text
    print string

錯誤:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 0: ordinal not in range(128)

當我像python lx.py這樣運行您的代碼時,我沒有收到錯誤。 但是當我將結果發送到sdtout python lx.py > output.txt ,它發生了。 所以試試這個:

# -*- coding: utf-8 -*-
import requests
import lxml.html
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

這樣,您就可以從默認的ASCII切換為UTF-8,Python運行時在必須將字符串緩沖區解碼為unicode時將使用該默認值。

text屬性始終返回純字節,但是content屬性應嘗試為您編碼。 您也可以嘗試: sourceHTML.text.encode('utf-8')sourceHTML.text.encode('ascii')但我確定后者會導致相同的異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM