所以我试图通过使用项目和管道使事情变得更干净。现在,我对管道的设置是(在settings.py中):
ITEM_PIPELINES = {
'scrapybot.pipelines.CsvPipeline': 300,
}
pipelines.py中将管道内容(作为测试)放入与设置相同的文件夹中:
class CsvPipeline(object):
def process_item(self, item, spider):
print("it works")
return item
我从名为core的单个文件启动了两个Spider,该文件与管道和设置位于同一文件夹中:
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.settings import Settings
from scrapy.utils.project import get_project_settings
from spiders.carrefour_bot import CarrefourSpider
from spiders.ebay_bot import EbaySpider
process = CrawlerProcess(get_project_settings())
process.crawl(CarrefourSpider)
process.crawl(EbaySpider)
process.start()
和项目。项目不在此文件夹中,而是在Spiders文件夹中:
class ScrapybotItem(scrapy.Item):
ean = scrapy.Field()
desc = scrapy.Field()
price = scrapy.Field()
company = scrapy.Field()
我在两个蜘蛛中都这样称呼它们:
from spiders.items import ScrapybotItem
我担心的是,管道无法打开。我在航站楼:
INFO: Enabled item pipelines:
[]
这一次起作用了,我用CSVItemExporter测试了管道。但由于一个原因,即使我以发布的基本形式,我的管道也无法打开。有什么想法吗?