我从本地主机从不同的网站下载不同的公司名称,有时我会遇到这个问题,那就是中断下载过程。我的脚本在其他国家运行良好,但当我下载捷克共和国时,会出现这种类型的错误。
到目前为止处理的公司总数:0 Traceback(最近一次通话):文件"process1.py",第261行,位于print"Company Name:"+hit.text File"C:\Python27\lib\encodings\cp437.py",第12行,编码return codecs.charmap_encode(input,errors,encoding_map)UnicodeEncodeError:"charmap"编解码器无法对中的字符u"\xfd"进行编码位置3 3 3:字符映射到
我的代码在这里:
if companyAlreadyKnown == 0:
for hit in soup2.findAll("h1"):
print "Company Name: "+hit.text
pCompanyName = hit.text
flog.write("nCompany Name: "+str(pCompanyName))
companyObj.setCompanyName(pCompanyName)
我不知道为什么会这样。关于这个问题有什么建议吗?
UTF-8
。一个更好的解决方案是检测你正在抓取的网站使用的编码,并解码为该编码。
if companyAlreadyKnown == 0:
for hit in soup2.findAll("h1"):
company_name = hit.text.decode('utf-8')
print "Company Name: " + company_name
flog.write("nCompany Name: " + pCompanyName)
companyObj.setCompanyName(company_name)