scrapy自定义pipeline类实现将采集数据保存到mongodb的方法

本文实例讲述了scrapy自定义pipeline类实现将采集数据保存到mongodb的方法。分享给大家供大家参考。具体如下:

# Standard Python library imports
# 3rd party modules
import pymongo
from scrapy import log
from scrapy.conf import settings
from scrapy.exceptions import DropItem
class MongoDBPipeline(object):
  def __init__(self):
    self.server = settings['MONGODB_SERVER']
    self.port = settings['MONGODB_PORT']
    self.db = settings['MONGODB_DB']
    self.col = settings['MONGODB_COLLECTION']
    connection = pymongo.Connection(self.server, self.port)
    db = connection[self.db]
    self.collection = db[self.col]
  def process_item(self, item, spider):
    err_msg = ''
    for field, data in item.items():
      if not data:
        err_msg += 'Missing %s of poem from %s\n' % (field, item['url'])
    if err_msg:
      raise DropItem(err_msg)
    self.collection.insert(dict(item))
    log.msg('Item written to MongoDB database %s/%s' % (self.db, self.col),
        level=log.DEBUG, spider=spider)
    return item

希望本文所述对大家的python程序设计有所帮助。

(0)

相关推荐

  • Python使用scrapy采集数据时为每个请求随机分配user-agent的方法

    本文实例讲述了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法.分享给大家供大家参考.具体分析如下: 通过这个方法可以每次请求更换不同的user-agent,防止网站根据user-agent屏蔽scrapy的蜘蛛 首先将下面的代码添加到settings.py文件,替换默认的user-agent处理模块 复制代码 代码如下: DOWNLOADER_MIDDLEWARES = {     'scraper.random_user_agent.RandomUserAg

  • 基于scrapy实现的简单蜘蛛采集程序

    本文实例讲述了基于scrapy实现的简单蜘蛛采集程序.分享给大家供大家参考.具体如下: # Standard Python library imports # 3rd party imports from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import HtmlXP

  • Python使用scrapy采集数据过程中放回下载过大页面的方法

    本文实例讲述了Python使用scrapy采集数据过程中放回下载过大页面的方法.分享给大家供大家参考.具体分析如下: 添加以下代码到settings.py,myproject为你的项目名称 复制代码 代码如下: DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.LimitSizeHTTPClientFactory' 自定义限制下载过大页面的模块 复制代码 代码如下: MAX_RESPONSE_SIZE = 1048576 # 1Mb fro

  • Python基于scrapy采集数据时使用代理服务器的方法

    本文实例讲述了Python基于scrapy采集数据时使用代理服务器的方法.分享给大家供大家参考.具体如下: # To authenticate the proxy, #you must set the Proxy-Authorization header. #You *cannot* use the form http://user:pass@proxy:port #in request.meta['proxy'] import base64 proxy_ip_port = "123.456.7

  • Python自定义scrapy中间模块避免重复采集的方法

    本文实例讲述了Python自定义scrapy中间模块避免重复采集的方法.分享给大家供大家参考.具体如下: from scrapy import log from scrapy.http import Request from scrapy.item import BaseItem from scrapy.utils.request import request_fingerprint from myproject.items import MyItem class IgnoreVisitedIt

  • Python使用scrapy采集时伪装成HTTP/1.1的方法

    本文实例讲述了Python使用scrapy采集时伪装成HTTP/1.1的方法.分享给大家供大家参考.具体如下: 添加下面的代码到 settings.py 文件 复制代码 代码如下: DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.HTTPClientFactory' 保存以下代码到单独的.py文件 复制代码 代码如下: from scrapy.core.downloader.webclient import ScrapyHTTPClien

  • scrapy自定义pipeline类实现将采集数据保存到mongodb的方法

    本文实例讲述了scrapy自定义pipeline类实现将采集数据保存到mongodb的方法.分享给大家供大家参考.具体如下: # Standard Python library imports # 3rd party modules import pymongo from scrapy import log from scrapy.conf import settings from scrapy.exceptions import DropItem class MongoDBPipeline(o

  • python爬虫数据保存到mongoDB的实例方法

    爬虫数据保存到mongoDB的方法: import pymongo # 首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选 def save_mongo(传入的数据): # 创建连接 因为使用的为本机数据库,所以IP写localhost即可,端口号为27017 client = pymongo.MongoClient('localhost',27017) # 连接数据库(这里注意一点,mongo数据库有一个优点,就是当自己连接的数据库和表都没有的

  • Android实现内存中数据保存到sdcard的方法

    本文实例讲述了Android实现内存中数据保存到sdcard的方法.分享给大家供大家参考,具体如下: public static void writeToSdCard(String s) { try { File dst = new File("/sdcard/test_sensor/" + mName + ".txt"); File parent = dst.getParentFile(); if(!parent.exists()) { parent.mkdirs

  • Bootstrap富文本组件wysiwyg数据保存到mysql的方法

    Bootstrap提供了一个叫wysiwyg的富文本组件,用来显示和编辑富文本数据,但如何将编辑后的数据保存到MySQL数据库,却不得而知.另外,如何将mysql数据库中的数据显示到wysiwyg也不得而知,对于这两个问题,让我来告诉你解决方案! 一.效果展示 首先,我们先来看看效果如何: 富文本中有一张图片,还有一个数字列表 我们可以看到编辑后的数据保存成功,以及保存后对应的展示. 二.富文本 度娘对于富文本的解释如下: 富文本格式(Rich Text Format, 一般简称为RTF)是由微

  • 利用scrapy将爬到的数据保存到mysql(防止重复)

    前言 本文主要给大家介绍了关于scrapy爬到的数据保存到mysql(防止重复)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.环境建立 1.使用xmapp安装php, mysql ,phpmyadmin 2.安装python3,pip 3.安装pymysql 3.(windows 略)我这边是mac,安装brew,用brew 安装scrapy 2.整个流程 1. 创建数据库和数据库表,准备保存 2.写入爬虫目标URL,进行网络请求 3.对爬返回数据进行处理,得

  • python读取json文件并将数据插入到mongodb的方法

    本文实例讲述了python读取json文件并将数据插入到mongodb的方法.分享给大家供大家参考.具体实现方法如下: #coding=utf-8 import sunburnt import urllib from pymongo import Connection from bson.objectid import ObjectId import logging from datetime import datetime import json from time import mktime

  • C#将Sql数据保存到Excel文件中的方法

    本文实例讲述了C#将Sql数据保存到Excel文件中的方法,非常有实用价值.分享给大家供大家参考借鉴之用. 具体功能代码如下: public string ExportExcel( DataSet ds,string saveFileName) { try { if (ds == null) return "数据库为空"; bool fileSaved = false; Microsoft.Office.Interop.Excel.Application xlApp = new Mic

  • 使用pandas将numpy中的数组数据保存到csv文件的方法

    接触pandas之后感觉它的很多功能似乎跟numpy有一定的重复,尤其是各种运算.不过,简单的了解之后发现在数据管理上pandas有着更为丰富的管理方式,其中一个很大的优点就是多出了对数据文件的管理. 如果想保存numpy中的数组元素到一个文件中,通过纯Python的文件写入当然是可以实现的,但是总觉得是少了一点便捷性.在这方面,pandas工具的使用就会让工作方便很多.下面通过一个简单的小例子来演示一下. 首先,创建numpy中的数组. In [18]: arr1 = np.arange(10

  • C#将DataGridView中的数据保存到CSV和Excel中

    一.保存到CSV public static bool dataGridViewToCSV(DataGridView dataGridView) { if (dataGridView.Rows.Count == 0) { MessageBox.Show("没有数据可导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } SaveFileDialog saveFile

随机推荐