|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
很多朋友学习小甲鱼的爬虫之后都会尝试用scrapy模块去爬取一些网站,但是保存下来的json格式中的中文都是类似\u4e2d\u56fd这种格式的
在这里给大家提供下保存成正确中文的方法
首先建立了scrapy工程之后,会有一个pipeline.py文件,打开修改这个文件
- import json #记得添加这两个库
- import codecs
- class XXXPipeline(object): #XXX就是你建立scrapy工程的名称
- def __init__(self): #添加一下初始化方法
- self.file = codecs.open('item.json', 'wb', encoding='utf-8') #item.json指的是你要保存的json格式文件的名称,编码格式一般都是'utf-8'
- def process_item(self, item, spider):
- line = json.dumps(dict(item),ensure_ascii=False) + '\n' #这一句会将你每次返回的字典抓取出来,“ensure_ascii=False”这一句话很重要,如果是True的话就是我们保存的\u4e2d\u56fd这种格式了
- self.file.write(line) #写入到文件中
- return item
复制代码
然后我们要启用Pipeline这个组件使用我们的修改就需要修改setting.py这个文件
setting.py中默认有ITEM_PIPELINES的代码,默认是注释掉的,将注释去掉,注意这个字典中的'XXX.pipelines.XXXPipeline'与你修改的类名一致才会生效,后边的300正常不需要去修改
最后只要在命令中启动你的爬虫就可以,而且加了Pipeline之后,输出命令只需要 输入
这样就可以,scrapy会自动保存json格式文件到item.json文件中,item.json就是你指定的在pipeline.py文件中打开的文件名
pipeline组件对于保存爬虫信息相当有用,除了json还有表格形式csv格式,本篇先只提json,之后再更新csv的 |
|