在scrapy的pipelines中連線資料庫
在scrapy專案中的settings.py中設定
#連線mongo
MONGODB_HOST = '127.0.0.1'
MONGODB_PORT = 27017
MONGODB_DBNAME = 'data'
MONGODB_DOCNAME = 'chinadata'
ITEM_PIPELINES = {
# 'chinaico.pipelines.ChinaicoPipeline': 300,
'chinaico.pipelines.RedisPipeline':301,
'chinaico.pipelines.MongoPipeline':301,
}
在scrapy專案中的pipelines.py中設定
import json
import redis
import pymongo
from pymongo import MongoClient
from scrapy.conf import settings
import datetime
class ChinaicoPipeline(object):
def process_item(self, item, spider):
return item
class RedisPipeline(object):
def __init__(self):
self.r = redis.StrictRedis(host='127.0.0.1',password='', port=6379, db=3)
def process_item(self, item, spider):
self.r.sadd("webchinadata", json.dumps(dict(item),ensure_ascii=False))
return item
class MongoPipeline(object):
def __init__(self):
host = settings['MONGODB_HOST']
port = settings['MONGODB_PORT']
db_name = settings['MONGODB_DBNAME']
client = pymongo.MongoClient(host=host, port=port)
db = client[db_name]
self.post = db[settings['MONGODB_DOCNAME']]
def process_item(self, item, spider):
china_data = dict(item)
self.post.insert(china_data,"time":datetime.datetime.now())插入資料
self.post.update({"name":item["name"]},{"$set":china_data},upsert = True)
更新資料
return item
相關文章
- IDEA中資料庫連線Idea資料庫
- PHP中的資料庫連線方法PHP資料庫
- 資料庫中字串連線符的使用資料庫字串
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 連線資料庫資料庫
- 如何在weka中連線資料庫資料庫
- 資料庫的連線數資料庫
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- django中的資料庫連線池實現Django資料庫
- 雜談---資料庫連線中的藝術資料庫
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- mysqli連線資料庫MySql資料庫
- Mongodb資料庫連線MongoDB資料庫
- Android 連線資料庫Android資料庫
- java連線資料庫Java資料庫
- 連線資料庫-mysql資料庫MySql
- jmeter連線資料庫JMeter資料庫
- Mybatis連線資料庫MyBatis資料庫
- JSP連線資料庫JS資料庫
- JDBC連線資料庫JDBC資料庫
- Flask連線資料庫Flask資料庫
- 資料庫與python的連線資料庫Python
- 資料庫的連線過程資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 織夢CMS(dedecms)的資料庫連線檔案_織夢連線資料庫檔案資料庫
- Java 資料庫連線的那些事Java資料庫
- 連線別人的MySql資料庫MySql資料庫
- PHP連線資料庫的步驟PHP資料庫
- 在Java中地域分佈資料庫是如何連線和進行CRUD 操作的?Java資料庫
- IDEA無法連線docker中的資料庫的問題IdeaDocker資料庫
- Python連線SQLite資料庫PythonSQLite資料庫
- C#連線資料庫C#資料庫
- 如何連線MySQL資料庫MySql資料庫
- 使用Sequelize連線資料庫資料庫
- 資料庫連線池原理資料庫
- 使用JPA連線資料庫資料庫