Ich habe zwei CrawlerProcesses, jeder ruft eine andere Spinne an. Ich möchte benutzerdefinierte Einstellungen einer dieser Prozesse passieren die Ausgabe der Spinne zu csv zu retten, ich dachte, dass ich dies tun könnte:Wie übergeben Sie benutzerdefinierte Einstellungen über CrawlerProcess in scrapy?
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()
und in meiner Spinne Ich lese sie als Argument:
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)
aber wie kann ich meine Projekteinstellungsdatei "settings.py" über diese benutzerdefinierten Einstellungen informieren? Ich möchte sie nicht hart codieren, sondern möchte, dass sie automatisch gelesen werden.
Ich weiß nicht, ob dies möglich ist, wäre eine Konfigurationsdatei Ansatz für jede Spinne eine Lösung? So mache ich es in meinen Projekten. – voidpointercast
Mein Ziel zu versuchen, es auf diese Weise zu tun ist, den Prozess, wenn eine for-Schleife, und dann kann ich automatisch verschiedene Namen für die CSV-Ausgabedateien haben. Kann ich das mit der Konfigurationsdatei machen? Können Sie mehr dazu sagen? – owise