Scrapy的piplines.py存储文件和存储mongodb
一、将数据保存到文件
1.piplines.py文件
import json class TencentPipeline(object): def open_spider(self,spider):
if spider.name=='hr_tencent':
self.file=open('data.json','w') def process_item(self, item, spider):
if spider.name=='hr_tencent':
data=dict(item)
# data=json.dumps(data,ensure_ascii=False)
data=json.dumps(data)
self.file.write(data+',\n')
return item def close_spider(self,spider):
if spider.name=='hr_tencent':
self.file.close()
2.settings.py文件
ITEM_PIPELINES = {
'tencent.pipelines.TencentPipeline': 300,
}
二、将数据保存到mongodb
1.piplines.py文件
from pymongo import MongoClient class Tencent1Pipeline(object):
def open_spider(self,spider):
if spider.name == 'hr_tencent1':
self.client=MongoClient('127.0.0.1',27017)
self.tencent=self.client['tencent']['tencent']
def process_item(self,item,spider):
if spider.name == 'hr_tencent1':
print(item)
self.tencent.insert(dict(item))
return item
def close_spider(self,spider):
if spider.name == 'hr_tencent1':
self.client.close()
2.settings.py文件
ITEM_PIPELINES = {
'tencent.pipelines.Tencent1Pipeline': 299,
}
Scrapy的piplines.py存储文件和存储mongodb的更多相关文章
- Python爬虫框架Scrapy实例(三)数据存储到MongoDB
Python爬虫框架Scrapy实例(三)数据存储到MongoDB任务目标:爬取豆瓣电影top250,将数据存储到MongoDB中. items.py文件复制代码# -*- coding: utf-8 ...
- 数据存储 mongodb
数据存储 mongodb from pymongo import MongoClient import os base_dir = os.getcwd() class MongoPipeline(ob ...
- scrapy框架基于管道的持久化存储
scrapy框架的使用 基于管道的持久化存储的编码流程 在爬虫文件中数据解析 将解析到的数据封装到一个叫做Item类型的对象 将item类型的对象提交给管道 管道负责调用process_item的方法 ...
- 大数据存储:MongoDB实战指南——常见问题解答
锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当 ...
- scrapy爬取数据进行数据库存储和本地存储
今天记录下scrapy将数据存储到本地和数据库中,不是不会写,因为小编每次都写觉得都一样,所以记录下,以后直接用就可以了-^o^- 1.本地存储 设置pipel ines.py class Ak17P ...
- 第二十节:Scrapy爬虫框架之使用Pipeline存储
在上两节当中,我们爬取了360图片,但是我们需要将图片下载下来,这将如何下载和存储呢? 下边叙述一下三种情况:1.将图片下载后存储到MongoDB数据库:2.将图片下载后存储在MySQL数据库:3.将 ...
- Scrapy连接到各类数据库(SQLite,Mysql,Mongodb,Redis)
如何使用scrapy连接到(SQLite,Mysql,Mongodb,Redis)数据库,并把爬取的数据存储到相应的数据库中. 一.SQLite 1.修改pipelines.py文件加入如下代码 # ...
- scrapy爬取海量数据并保存在MongoDB和MySQL数据库中
前言 一般我们都会将数据爬取下来保存在临时文件或者控制台直接输出,但对于超大规模数据的快速读写,高并发场景的访问,用数据库管理无疑是不二之选.首先简单描述一下MySQL和MongoDB的区别:MySQ ...
- 关于scrapy的piplines
1.进入setting中把ITEM_piplines文件注销去掉 2.在piplines中写好代码 # -*- coding: utf- -*- # Define your item pipeline ...
随机推荐
- mybatis原理分析学习记录,mybatis动态sql学习记录
以下个人学习笔记,仅供参考,欢迎指正. MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转 ...
- redis 执行操作时提示(error) NOAUTH Authentication required.
(error) NOAUTH Authentication required. 出现认证问题,设置了认证密码,输入密码即可 127.0.0.1:6379> auth 123456
- Oracle update语句更新值来自另一张表中的数据
task 任务表 role 角色表 两表之间必须有关联的字段 update task t set t.roleName = ( select r.name from role r where r.id ...
- JVM-GC学习
http://blog.csdn.net/column/details/14851.html 地址记录
- HDU 1024 Max Sum Plus Plus(DP的简单优化)
Problem Description Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To b ...
- 常见adb指令
1. adb –-help 查看帮助文档 2. adb start-server 当adb没有启动或被手动杀掉时,可以使用该命令启动服务 3. adb kill-server 杀死adb服务 4. a ...
- HTTP响应 状态码描述
- springBoot 项目war包部署及改为war包后资源路径错误问题
参考资料: https://blog.csdn.net/rico_zhou/article/details/83415114 https://blog.csdn.net/pz641/article/d ...
- 数据流中的中位数 Find Median from Data Stream
2019-04-17 16:34:50 问题描述: 问题求解: class MedianFinder { PriorityQueue<Integer> smaller; PriorityQ ...
- Python 文件的基本操作
打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读: 不存在则创建:存在则只追加内容:] "+" 表示可 ...