Rumah > Soal Jawab > teks badan
一个很简单的小爬虫程序
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
你需要知道 kandungan 的编码方式,并考虑是否要转换
你需要用 utf-8
打开文件,然后写入
codecs.open(nama fail, mod[, pengekodan[, ralat[, penimbalan]]])
Buka fail yang dikodkan menggunakan mod yang diberikan dan kembalikan versi yang dibalut
menyediakan pengekodan/penyahkodan telus. Mod fail lalai ialah 'r'
bermaksud membuka fail dalam mod baca.Nota Versi yang dibalut hanya akan menerima format objek yang ditakrifkan oleh
codec, iaitu objek Unicode untuk kebanyakan codec terbina dalam. Output
juga bergantung kepada codec dan biasanya akan menjadi Unicode juga. Nota Fail
sentiasa dibuka dalam mod binari, walaupun tiada mod binari dinyatakan. Ini dilakukan untuk mengelakkan kehilangan data akibat pengekodan menggunakan
nilai 8-bit. Ini bermakna tiada penukaran automatik 'n' dilakukan
pada membaca dan menulis. pengekodan menentukan pengekodan yang akan
digunakan untuk fail.
ralat mungkin diberikan untuk mentakrifkan pengendalian ralat. Ia lalai kepada
'strict' yang menyebabkan ValueError dinaikkan sekiranya berlaku ralat
pengekodan.
penimbalan mempunyai makna yang sama seperti fungsi open() terbina dalam. Ia
lalai kepada baris buffer.
import codecs
f = codecs.open("domain_test.xml", "w", "utf-8")