这篇将爬虫框架scrapy篇三中的第四步展开来讲,主要讲数据存入mongodb和mysql的不同方法
1、数据存入mongodb
链接MongoDB数据库有两种方法:
1、不需要在setting.py配置相应的参数,直接初始化连接参数
2、需要在setting.py配置相应的参数
1.1 直接初始化,传入相应的值
pipelines
from pymongo import MongoClient
from scrapy.exceptions import DropItem
# 存入mongodb数据库,初始化的时候,直接传入相应的值
class Movie80SPipeline:
def __init__(self, databaseIp='127.0.0.1', databasePort=27017,
mongodbName='scrapy_movie80'):
client = MongoClient(databaseIp, databasePort)
self.db = client[mongodbName]
# self.db.authenticate(user, password)
self.title = set() # 定义数据去重的集合
def process_item(self, item, spider):
title = item['moviename'] # 取出要进行判断数据是否重复的字段
if title in self.title: # 如果存在集合中则直接删除该项,
raise DropItem('{}已存在'.format(title))
else:
self.title.add(title) # 如果数据不重复,则加入集合
postItem = dict(item) # 把item转化成字典形式
self.db.scrapy.insert(postItem) # 向数据库插入一条记录
# 优先级高的管道类这里必须返回item,否则在优先级低的管道类中接收不到item会报错
return item
1.2 在setting.py配置文件中设置参数,调用setting.py文件中的参数值
settings
# 在settings中加上以下参数
MONGO_HOST = "127.0.0.1" # 主机IP
MONGO_PORT = 27017 # 端口号