打开MongoDB服务器
打开MongoDB服务器
sudo mongod
启动MongoDB客户端
#新开终端输入
mongo #启动MongoDB客户端
exit/ctrl+c #退出客户端
查询数据库
show dbs
使用数据库
use 数据库名字
#如果没有此数据库,需要创建数据库。
#方法:use 数据库名字
#db.名字.insert({key:1})必须插入一个数据,认证一下,否则mongdb默认为空,不认识
查询集合
show collections #查询所有集合
use createCollection ('name') #创建集合
查询所集合元素(文档)
db.colname.find()
pipelines
项目的管道文件,用来处理数据的(保存文档, 或者存入数据库)
from scrapy.conf import settings
import pymongo
class TencentPipeline(object):
def __init__(self):
# 获取setting主机名、端口号和数据库名
host = settings['MONGODB_HOST']
port = settings['MONGODB_PORT']
dbname = settings['MONGODB_DBNAME']
# pymongo.MongoClient(host, port) 创建MongoDB链接
client = pymongo.MongoClient(host=host,port=port)
# 指向指定的数据库
mdb = client[dbname]
# 获取数据库里存放数据的表名
self.post = mdb[settings['MONGODB_DOCNAME']]
def process_item(self, item, spider):
data = dict(item)
# 向指定的表里添加数据
self.post.insert(data)
return item
setting
项目的配置文件
BOT_NAME = 'tenxun'
SPIDER_MODULES = ['tenxun.spiders']
NEWSPIDER_MODULE = 'tenxun.spiders'
# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = 'tenxun (+http://www.yourdomain.com)'
# Obey robots.txt rules
ROBOTSTXT_OBEY = True
ITEM_PIPELINES = {
# 'tenxun.pipelines.TenxunPipeline': 300,
'tenxun.pipelines.TenxunPipeline': 300,
}
# 主机环回地址
MONGODB_HOST = '127.0.0.1'
# 端口号
MONGODB_PORT = 27017
# 设置数据库名称
MONGODB_DBNAME = 'centent'
# 存放本次数据表的名称
MONGODB_DOCNAME = 'centent_data'