使用Scrapy管道而不使用settings.py配置

时间:2018-08-11 22:42:08

标签: python python-3.x scrapy

我避免使用Scrapy样板生成器,因为我的代码将集成到更广泛的项目中。

我当前的项目树如下:

/ test
|- items.py
|- pipelines.py
|- spider.py

我的pipeline.py包含一个如下所示的管道:

import pymongo

class MongoPipeline(object):
    collection_name = 'pages'
    [... rest of the pipeline class ...]

如何在spider.py中使用此类而不使用settings.py文件和scrapy.conf

我尝试导入管道类并在ITEM_PIPELINES中设置custom_settings,但是会抛出ValueError: Error loading object 'MongoPipeline': not a full path

from pipelines import MongoPipeline

class MySpider(CrawlSpider):
    name = 'x'
    allowed_domains = ['x']
    start_urls = ['x']

    custom_settings = {
        'ITEM_PIPELINES': {
            'MongoPipeline': 100
        }
    }

    def parse(self, response):
        [...]

1 个答案:

答案 0 :(得分:1)

应该是:

custom_settings = {
    'ITEM_PIPELINES': {
        'YourProjectName.pipelines.MongoPipeline': 100
    }
}