2014-12-16 6 views
6

Ich habe eine scrapy pipelines.py und ich möchte die angegebenen Argumente erhalten. In meinem spider.py funktioniert es perfekt:Mit Argumenten in Scrapy-Pipeline auf __init__

class MySpider(CrawlSpider): 
    def __init__(self, host='', domain_id='', *args, **kwargs): 

     super(MySpider, self).__init__(*args, **kwargs) 
     print user_id 
     ... 

Nun, ich die "user_id" in meinem pipelines.py müssen die SQLite-Datenbank wie "Domain-123.db" erstellen. Ich suche das ganze Web nach meinem Problem, aber ich kann keine Lösung finden.

Kann mir jemand helfen?

PS: Ja, ich habe versucht, die super() -Funktion innerhalb meiner Pipelines-Klasse wie die spyer.py, es funktioniert nicht.

Antwort

12

die Argumente innerhalb der spider ‚s Konstruktor Set:

class MySpider(CrawlSpider): 
    def __init__(self, user_id='', *args, **kwargs): 
     self.user_id = user_id 

     super(MySpider, self).__init__(*args, **kwargs) 

und sie in der open_spider() Methode Ihrer Pipeline lesen:

def open_spider(self, spider): 
    print spider.user_id 
+0

Sie meinen Tag gerettet, es perfekt funktioniert. Vielen Dank! – user3507915