2014-12-16 22 views
6

Mam scrapy pipelines.py i chcę uzyskać podane argumenty. W moim spider.py działa idealnie:Używanie argumentów w potoku do scrapy na __init__

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

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

Teraz muszę się „user_id” w moim pipelines.py aby utworzyć bazę danych sqlite jak „domena-123.db”. Przeszukuję całą sieć o moim problemie, ale nie mogę znaleźć żadnego rozwiązania.

Czy ktoś może mi pomóc?

PS: Tak, próbowałem funkcji super() w moich potokach Klasy jak spyer.py, to nie działa.

Odpowiedz

12

Ustaw argumenty wewnątrz konstruktora spider „s:

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

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

i przeczytać je w sposobie swojego rurociągu open_spider():

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

Uratowałeś mój dzień, to działa idealnie. Dzięki! – user3507915