我从本地主机的不同网站下载不同的公司名称,有时我会遇到这个问题,即中断下载过程。我的脚本对于其他国家/地区工作正常,但当我下载捷克共和国时,会发生这种类型的错误。
Total companies processed so far:0 Traceback (most recent call last): File "process1.py", line 261, in print "Company Name: "+hit.text File "C:\Python27\lib\encodings\cp437.py", line 12, in encode return codecs.charmap_encode(input,errors,encoding_map) UnicodeEncodeError: 'charmap' codec can't encode character u'\xfd' in position 3 3: character maps to
我的代码在这里:
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)
我不知道为什么会发生这种情况。对此问题有什么建议吗?
最佳答案
捷克语包含大量非 ASCII 字符。 u'\xfd'
是 ý
的 unicode 表示形式。您需要解码 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)
关于mysql - Unicode编码错误: 'charmap' codec can't encode character u'\xfd' in python 2. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155125/