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程序设计有所帮助。
相关推荐
-
基于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采集数据时使用代理服务器的方法.分享给大家供大家参考.具体如下: # 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采集数据时为每个请求随机分配user-agent的方法
本文实例讲述了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法.分享给大家供大家参考.具体分析如下: 通过这个方法可以每次请求更换不同的user-agent,防止网站根据user-agent屏蔽scrapy的蜘蛛 首先将下面的代码添加到settings.py文件,替换默认的user-agent处理模块 复制代码 代码如下: DOWNLOADER_MIDDLEWARES = { 'scraper.random_user_agent.RandomUserAg
-
Python使用scrapy采集数据过程中放回下载过大页面的方法
本文实例讲述了Python使用scrapy采集数据过程中放回下载过大页面的方法.分享给大家供大家参考.具体分析如下: 添加以下代码到settings.py,myproject为你的项目名称 复制代码 代码如下: DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.LimitSizeHTTPClientFactory' 自定义限制下载过大页面的模块 复制代码 代码如下: MAX_RESPONSE_SIZE = 1048576 # 1Mb fro
-
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
随机推荐
- jQuery实现的可编辑表格完整实例
- 在浏览器窗口上添加遮罩层的方法
- Cocos2d-x人物动作类实例
- Android studio 快捷键大全
- PHP在线生成二维码代码(google api)
- JavaScript随机生成信用卡卡号的方法
- Python可跨平台实现获取按键的方法
- css 命名规范
- Windows Powershell 复制数组
- Linux线程退出方式总结(推荐)
- Python Socket编程详细介绍
- C#实现漂亮的数字时钟效果
- jquery对单选框,多选框,文本框等常见操作小结
- 仿google adsense颜色选择器代码,从中易广告联盟程序提取 原创第1/2页
- 微信开发之使用java获取签名signature
- Java 中的 BufferedReader 介绍_动力节点Java学院整理
- java实现客户端向服务器发送文件
- JS点击动态添加标签、删除指定标签的代码
- 详解如何利用amoeba(变形虫)实现mysql数据库读写分离
- Objective-C中的block与Swift中的尾随闭包使用教程