scrapy 存储数据到mongodb

存储数据至mongoDB中
在 pipelines.py 中创建对应的管道类

在settings 中写好指定的数据
class QuotesMongoPipelin:
def init(self, local, port, username, password, mongo_db, mongo_collection):

    self.local = local
    self.port = port
    self.username = username
    self.pwd = password
    self.mongodb = mongo_db
    self.collection = mongo_collection
    self.connection = pymongo.MongoClient(host=self.local, port=self.port, username=self.username,
                                          password=self.pwd)
    db = self.connection[self.mongodb]
    self.connection = db[self.collection]

该方法通过crawler 对象在settings中读取数据
@classmethod
def from_crawler(cls, crawler):
return cls(
local=crawler.settings.get('MONGO_LOCA'),
port=crawler.settings.get('MONGO_PORT'),
username=crawler.settings.get('USERNAME'),
password=crawler.settings.get('PASSWORD'),
mongo_db=crawler.settings.get('MONGO_DB'),
mongo_collection=crawler.settings.get('MONGO_COLLECTION')
)

def close_spider(self, spider):
    self.collection.close()

def process_item(self, item, spider):
    valid = True
    for data in item:
        if not data:
            valid = False
            raise DropItem("missing{0}".format(data))
    if valid:
        self.connection.insert(dict(item))
        return item

最后在settings.py中激活该管道即可

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容