一个很简单的小爬虫程序
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