关于Mongodb的安装和Scrapy连接MongoDB
关于Mongodb的安装
1.在window下安装访问网址https://www.mongodb.com/download-center/community
选择版本,根据系统32位或64位下载.msi文件
2.选择custom自定义安装目录
3.MongoDB Compass是一个图形界面管理工具,我们可以在后面自己到官网下载安装,这里不选择安装,可以免去很多时间
4.安装成功后还需一些步骤:
自行创建数据库数据所在文件夹,给这个文件夹取名data;
进入bin这个文件夹,创建一个txt文件;
打开该txt文件,往里面输入mongod --dbpath ../data
意思是,执行当前文件夹内一个叫mongod的可执行文件,并且告诉这个文件,数据库所在文件夹是上级目录的data文件夹;
改后缀名为bat;
双击bat就可以打开;
5.安装一个可视化工具,网址为https://robomongo.org/
6.安装成功后打开文件并点击两个小电脑的图标,再点击creat,创建好点击save后,再点击connect即可。
Scrapy连接MongoDB
1.setting.py文件下,在一个空白的地方写即可,代码如下
Mongoip='192.xxx.xx.xx' #mongoDB节点 ip地址
MongoPort=27017 #端口号
MongoDBname='datago306' #文档名
MongoItem='jobItem' #item名
2.首先先安装pymongo包,在cmd中输入pip install pymongo
安装
之后编写一个将item写入mongo的middleware,代码如下
from pymongo import MongoClient # 使用MongoClient连接mongo
from novel.settings import Mongoip,MongoDBname,MongoPort,MongoItem #从settings.py导入所配置的连接信息
class CrawldataToMongoPipline(object):
def __init__(self):
host = Mongoip #主机
port = MongoPort #端口
dbName=MongoDBname #文档名
client = MongoClient(host=host,port=port) # 创建连接对象client
db = client[dbName] # 使用文档dbName='xxx_novel'
self.post = db[MongoItem] # 使用item MongoItem='novelItem'
def process_item(self, item, spider):
job_info = dict(item) # item转换为字典格式
self.post.insert(job_info) # 将item写入mongo
return item
3.在settings.py中启用写好的CrawldataToMongoPipline middleware
ITEM_PIPELINES = {
# 'crawlData.pipelines.CrawldataPipeline': 300,
'crawlData.pipelines.CrawldataToMongoPipline': 300,
}
运行
运行爬虫程序,再打开Robo 3T,refresh后会发现多了相关文件,里有我们所爬取的的相关项目