scrapy中把数据写入mongodb

1.setting.py中打开管道

ITEM_PIPELINES = {
   # ‘tianmao.pipelines.TianmaoPipeline‘: 300,
}

2.setting.py中写入mongodb配置

# mongodb
HOST = "127.0.0.1"  # 服务器地址
PORT = 27017  # mongo默认端口号
USER = "用户名"
PWD = "密码"
DB = "数据库名"
TABLE = "表名"

3.pipeline.py文件中倒入pymongo,数据写入数据库

from pymongo import MongoClient
class TianmaoPipeline(object):
    def __init__(self, host, port, user, pwd, db, table):
        self.host = host
        self.port = port
        self.user = user
        self.pwd = pwd
        self.db = db
        self.table = table

    @classmethod
    def from_crawler(cls, crawler):
        HOST = crawler.settings.get(‘HOST‘)
        PORT = crawler.settings.get(‘PORT‘)
        USER = crawler.settings.get(‘USER‘)
        PWD = crawler.settings.get(‘PWD‘)
        DB = crawler.settings.get(‘DB‘)
        TABLE = crawler.settings.get(‘TABLE‘)
        return cls(HOST, PORT, USER, PWD, DB, TABLE)

    def open_spider(self, spider):
        self.client = MongoClient(‘mongodb://%s:%[email protected]%s:%s‘ %(self.user,self.pwd,self.host,self.port))

    def close_spider(self, spider):
        self.client.close()

    def process_item(self, item, spider):
        self.client[self.db][self.table].save(dict(item))

原文地址:https://www.cnblogs.com/ptwg/p/11538302.html

时间: 2024-08-03 08:46:28

scrapy中把数据写入mongodb的相关文章

论Scrapy中的数据持久化

引入 Scrapy的数据持久化,主要包括存储到数据库.文件以及内置数据存储. 那我们今天就来讲讲如何把Scrapy中的数据存储到数据库和文件当中. 终端指令存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. # 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json # 存为json文件 scrapy crawl 爬虫名称 -

Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

写入: private void insertFile(HttpServletRequest request, HttpServletResponse response) throws IOException { String path_member = request.getParameter("path_member"); List list = this.insert("f:/tmp001.xls", "gs_sale_members");

将DataSet中的数据写入XML

protected void Button1_Click(object sender, EventArgs e) { string conStr = ConfigurationManager.ConnectionStrings["lianxiConnectionString"].ConnectionString; using (SqlConnection conn=new SqlConnection(conStr)) { conn.Open(); using (SqlCommand c

hbase使用MapReduce操作4(实现将 HDFS 中的数据写入到 HBase 表中)

实现将 HDFS 中的数据写入到 HBase 表中 Runner类 1 package com.yjsj.hbase_mr2; 2 3 import com.yjsj.hbase_mr2.ReadFruitFromHDFSMapper; 4 import com.yjsj.hbase_mr2.WriteFruitMRFromTxtReducer; 5 import org.apache.hadoop.conf.Configuration; 6 import org.apache.hadoop.c

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

python中的数据写入与添加数据写入

很多情况下,大家可能会遇到相同情况,就是现在有一些数据需要保存在某个文件里面,但是后续会不断更新添加新的数据,例如在爬虫的时候,一页一页爬取数据的时候,当然可以将所有页数据先合并到一起,再保存起来,但是也可以通过下文这种方式,输出一页的数据就保存一次,好像有点麻烦哈,但是如果是其他情况的话,可能就会便捷一点,例如数据更新不是很快这种情况等等. 1.引入模块 1 import os #获取当前工作路径 2 import pandas as pd #将数据保存至相应文件中 2.将数据保存至制定文件下

把Excel中的数据写入到dataGridView中

//单击命令按钮触发此事件 private void button1_Click(object sender, EventArgs e) { OpenFileDialog fd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格 fd.Filter = "表格|.xls";//打开文件对话框筛选器 string strPath;//文件完整的路径名 if (fd.ShowDialog() == DialogResult.OK) { try {

爬虫框架Scrapy之将数据存在Mongodb

用Pymongo保存数据 爬取豆瓣电影top250movie.douban.com/top250的电影数据,并保存在MongoDB中. items.py class DoubanspiderItem(scrapy.Item): # 电影标题 title = scrapy.Field() # 电影评分 score = scrapy.Field() # 电影信息 content = scrapy.Field() # 简介 info = scrapy.Field() spiders/douban.py

scrapy爬虫案例数据存入MongoDB

爬虫py文件 # -*- coding: utf-8 -*- import scrapy from ..items import RtysItem class RtSpider(scrapy.Spider): name = 'rt' #爬虫名,启动项目时用 # allowed_domains = ['www.baidu.com'] #定义爬虫范围 注释掉就可以 start_urls = ['https://www.woyaogexing.com/touxiang/'] #起始url 项目启动时,