我定义了一个scrapy管道,它应该将刮刀抓取的任何项目字段写入文本。其中一个字段包含HTML代码。由于臭名昭着的Unicode错误,我在将文件写入文件时遇到了问题:
UnicodeEncodeError:' ascii'编解码器不能对字符u' \ xa0'进行编码。位置100:序数不在范围内(128)
Scrapy可以在日志文件中将所有字段写为json。有人可以解释为处理编写文件的字符编码需要做些什么吗?提前谢谢。
import scrapy
import codecs
class SupportPipeline(object):
def process_item(self, item, spider):
for key, value in item.iteritems():
with codecs.open("%s.%s" % (prefix, key), 'wb', 'utf-8') as f:
# with open("%s.%s" % (prefix, key), 'wb') as f:
f.write(value.encode('utf-8'))
return item