我正在使用BeautifulSoup從網頁中抓取數據。我想將網站數據與.txt文檔中的文本進行比較。但是,我似乎有編碼問題。Python編碼問題:度符號和其他
該網站有使用beautifulSoup文「熱烘箱中以400°」的文本也出現這樣在「查看源」
該網站讀取(任何HTML實體。):
source = "my url".read()
....
soup = BeautifulSoup(source)
通過將新的文本文檔編碼爲「無UTF-8編碼」創建文本文檔。然後,我從網站上覆制粘貼「熱烤箱到400°」到文本文檔並保存。當我比較兩個字符串
文本文件被讀作
f = codecs.open('myfilename', encoding='utf-8')
,他們是不相等的,但我希望他們能。看看發生了什麼事情:在Eclipse中,我將兩個文本分開,然後在調試模式下查看變量,我發現BeautifulSoup的度數標誌顯示爲\ xc2 \ xb0。文本文檔中的度數標誌僅顯示爲\ xb0。
爲什麼,我該如何解決?我遇到了很多特殊字符的問題,所以我需要一個通用的解決方案。另外,我會將幾個網站的數據複製到文本文檔中。
http://stackoverflow.com/search?q=[python]+beautifulsoup+encoding – 2012-01-30 05:46:18
你知道你的文本文件的編碼,並正在使用它,但網站的編碼沒有被考慮在內。基本上,如果它們使用相同的編碼,或者比較unicode字符串(需要獲取字節並使用正確的編碼解釋它們),那麼比較字節(就像你在做的那樣)是有意義的。 – Cameron 2012-01-30 05:56:39
儘管您付出了努力,但您的文本文檔似乎並未以UTF-8格式顯示。或者HTML以某種方式進行了雙重編碼(這並不完全清楚你如何診斷差異;如果你還想添加信息,簡單的十六進制文件轉儲將有所幫助)。 – tripleee 2012-01-30 06:12:22