2015-12-17 42 views
0

Im使用硒從網頁中提取數據。 我試圖寫入這個數據到一個文件,但我有一些麻煩這樣做,當我寫'像'這樣的特殊字符,它會在我的文件(Ã)中創建不可讀的字符。 即時獲取頁面的網站編碼爲iso-8859-1,即時通訊使用Python 2.7。Python selenium解碼iso-8859-1到UTF-8

browser = webdriver.Firefox() 
browser.get(URL_SITE_ENCODED_IN_iso-8859-1) 
html = browser.page_source.decode('iso-8859-1') //error 

從我明白我必須在網頁解碼從ISO-8859-1那麼它將以UTF-8編碼,但是當我嘗試將引發一個錯誤:UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 246: ordinal not in range(128)

+0

請提供生成錯誤代碼,描述如下:http://stackoverflow.com/help/mcve –

+0

對不起,我昨天晚上很忙,我會編輯^^ – TyLO

回答

1

這可能因爲browser.page_source.decode已經解碼爲Unicode。請與:

>>> type(browser.page_source.decode) 
<type 'unicode'> 

當你寫這一個文件,你需要將其轉換爲適當的編碼。使用io模塊創建一個自動編碼文件包裝。嘗試:

browser = webdriver.Firefox() 
browser.get(anysite) 

with io.open("myoutfile.txt", "w", encoding="utf-8") as my_file: 
    my_file.write(browser.page_source)