我有兩個CrawlerProcesses,每個都調用不同的蜘蛛。我想通過自定義設置,這些過程中的一個保存蜘蛛CSV的輸出,我想我能做到這一點:如何通過scrapy中的CrawlerProcess傳遞自定義設置?
storage_settings = {'FEED_FORMAT': 'csv', 'FEED_URI': 'foo.csv'}
process = CrawlerProcess(get_project_settings())
process.crawl('ABC', crawl_links=main_links, custom_settings=storage_settings)
process.start()
,並在我的蜘蛛我讀它們作爲參數:
def __init__(self, crawl_links=None, allowed_domains=None, customom_settings=None, *args, **kwargs):
self.start_urls = crawl_links
self.allowed_domains = allowed_domains
self.custom_settings = custom_settings
self.rules = ......
super(mySpider, self).__init__(*args, **kwargs)
但我怎麼能告訴我的項目設置文件「settings.py」關於這些自定義設置?我不想對它們進行硬編碼,而是希望自動讀取它們。
我不知道這是可能的話,每個蜘蛛配置文件的方法來解決?多數民衆贊成在我的項目中如何做到這一點。 – voidpointercast
我試圖這樣做的目標是在for循環中插入進程,然後我可以自動爲csv輸出文件指定不同的名稱。我可以使用配置文件嗎?你能詳細說明一下嗎? – owise