Scrapy研究探索(四)——中文输出与中文保存
提取网页中中文并输出或者是保存时常常会出现一个问题是显示的是中文相应的unicode编码而非中文本身。这里讲述解决这样的问题的方法。
一. 针对交互输出。
例如以下面代码:
title = site.xpath('a/text()').extract() link = site.xpath('a/@href').extract() desc = site.xpath('a/@title').extract()
print title
此时title的输出可能是类似于例如以下:
\xe4\xbd\xbf\xe7\x94\xa8
这是title相应中文的unicode格式。
将其转换为utf-8在输出就可以:
title = site.xpath('a/text()').extract() link = site.xpath('a/@href').extract() desc = site.xpath('a/@title').extract() print title for t in title: print t.encode('utf-8')
这时两次输出的前一次为unicode码,而后一次为中文。
注意:
encode()仅仅针对str数据结构,假设不是。能够先转换为str。上面因为得到的title为list类型。所以转换如上。
二. 针对存储。
关于存储。可查看在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中在w3school和pipelines中使用的方式达到保存中文的效果。