2010-05-27 60 views
0

更換非ASCII字符我有一堆的HTML文件我使用Python中httplib2的包下載。 ' '顯示爲''。幫助在Python

<font color="#ff0000">02/12/2004Â </font> is showing while <font color="#ff0000">02/12/2004&nbsp;</font> is the desired format. 

如何更換'Â '使用Python '&nbsp;'?非常感謝!

+0

是的,它與原始HTML稍有不同。我正在使用httplib2下載它們,而不是真正的瀏覽器。是否有什麼東西我必須包含在httlib2的頁眉下載頁面? – ThinkCode 2010-05-27 14:14:32

回答

-1
s.replace('Â ', '&nbsp;'); 

不過,雖然我還沒有使用httplib2的,我敢肯定,如果當你下載他們的HTML文件的來源正在發生變化的東西是錯誤的。這可能是解碼問題正在進行。你使用的是什麼版本的Python?如果它是Python 3,則內容將是字節序列,而不是字符串,因此您必須指定正確的代碼頁來解碼字節。

http://code.google.com/p/httplib2/wiki/ExamplesPython3

編輯:如果您不限於只使用httplib2的,也許你可以嘗試尋找到使用urlliburllib2,或httplib模塊是Python的2.6標準庫的一部分?

+0

我正在使用Python 2.6 .. – ThinkCode 2010-05-27 14:22:55

+0

No go ..我得到以下錯誤:SyntaxError:文件中的非ASCII字符'\ xc3' 我在我的python中使用content.replace('',' ')程序..謝謝.. – ThinkCode 2010-05-27 14:26:30

+0

由於您使用的是Python 2版本,因此您可能必須使用unicode字符串來保存'Â'。我3個出來後幾個月就進入了Python,所以我主要有過這方面的經驗。 – JAB 2010-05-27 14:31:32

0
filtered_content = filter(lambda x: x in string.printable, content) 

這解決了我的問題。謝謝!

+0

這對我有同樣的問題。尼斯。 – AP257 2010-08-13 19:35:54

+1

這並沒有解決你的問題,這刪除了caracters,而不是用空格替換它們。 – 2011-12-22 10:17:13

1

你有一個編碼的問題。而不是試圖刪除這個人物,尋找網頁的編碼,那麼當你閱讀文件,使用codecs module代替open(),使用正確的字符編碼。