Scrapy中文输出与中文保存
来源:互联网 发布:中国沿海湿地保护网络 编辑:程序博客网 时间:2024/06/07 03:35
使用Scrapy抓取中文时,输出一般是unicode,要输出中文也只需要稍作改动。
两种情况:
单纯交互输出
如代码:
title = sel.xpath('a/text()').extract()print title
此时输出的是title对应中文的unicode格式,只需要指定“utf-8”编码即可输出中文,如下:
title = sel.xpath('a/text()').extract()for t in title: print t.encode('utf-8')
这里需要注意的是“encode()”函数是字符串专有的,而title是一个列表,因此需要对title中的每一个执行该操作。
存储
存储中文数据可以利用pipeline实现
1.定义pipeline
# -*- coding: utf-8 -*-import codecsimport jsonclass TutorialPipeline(object): def __init__(self): self.file = codecs.open('data_cn.json', 'wb', encoding='utf-8') def process_item(self, item, spider): line = json.dumps(dict(item)) + '\n' self.file.write(line.decode("unicode_escape")) return item
上述方法将得到的item解码,以便正常显示中文,并保存到定义的json文件中。
2.注册自定义的pipeline
为了启动pipeline,必须将其加入到“ITEM_PIPLINES”的配置中,在settings.py中加入下面一句:
ITEM_PIPELINES = { 'tutorial.pipelines.TutorialPipeline':300 }
其中根目录是tutorial,pipelines是我的pipeline文件名,TutorialPipeline是类名
OK,搞定
0 0
- Scrapy中文输出与中文保存
- Scrapy研究探索(四)——中文输出与中文保存
- Scrapy研究探索(四)——中文输出与中文保存
- scrapy抓取中文输出乱码解决方案
- scrapy输出中文字符到文件
- scrapy 中文教程
- Scrapy中文乱码解决
- scrapy中文存储
- android中文件的保存与读取
- MFC中文件打开与保存
- 关于CodeSmith不能保存及输出中文的解决办法
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- ofstream和wofstream与中文输出问题
- java远程调.net webservice例子
- LeetCode_25---Reverse Nodes in k-Group
- 让Git 更好的配置
- sgu259:Printed PR(贪心)
- 使用Mac OS X 终端连接Git@Git.Oschina.Net
- Scrapy中文输出与中文保存
- TIPC 透明通信协议
- 浅析CVE-2013-6282
- .net 跨数据库事务的实现
- Android快速开发之appBase——(3).详解IHolder和IData
- 方块大动员登陆iOS和Android平台,扫码就可立即体验超流畅的俄罗斯方块手游
- 第五届TFC“中国物流与通关事务卓越峰会”在今夏以知识专场的形式拉来帷幕,期待你的参与!
- android Dialog给Activity 传参
- Weblogic 10安装部署以及使用方法