一个很简单的小爬虫程序
for i in L:
content = urllib2.urlopen('http://X.X.X.X/cgi-bin/GetDomainOwnerInfo?domain=%s' %i)
html = content.read()
with open('domain_test.xml','a') as f:
f.write(html)
print html
print 的结果是中文:
<domaininfo strDomain="XXX.com." strOwner="XXX" strDepartment="云平台部" strBusiness="[互联网业务系统 - XXX" strUser="XXX;">
但直接打开xml文本的时候却是乱码:
<domaininfo strDomain="XXX.com." strOwner="XXX" strDepartment="云平å°éƒ¨" strBusiness="[互è”网业务系统 - 第三方应用]" StrUser="XXX;">
Windows 7 操作系统,python 2.7
请问一下各位,这个问题如何解决?
PHP中文网2017-04-18 10:23:02
你需要知道內容的編碼方式,並考慮是否要轉換
你需要用utf-8
打開文件,然後寫入
codecs.open(檔名, 模式[, 編碼[, 錯誤[, 緩衝]]])
使用給定模式開啟編碼檔案並返回包裝版本
提供透明的編碼/解碼。預設檔案模式是'r'
意思是以讀取模式開啟檔案。注意包裝版本僅接受
編解碼器定義的物件格式,即大多數內建解碼器的 Unicode 物件。輸出也依賴編解碼器,通常也是 Unicode。注意 檔案
始終以二進位模式打開,即使未指定二進位模式也是如此。這樣做是為了避免因為使用 8 位元值進行編碼而導致資料遺失。這意味著在讀取和寫入時不會完成“n”的自動轉換。編碼指定要用於文件的編碼。可以給出錯誤來定義錯誤處理。它預設為
'strict',這會在發生編碼
錯誤時引發 ValueError。
緩衝與內建 open() 函數具有相同的意義。它
預設為行緩衝。
雷雷回覆0