2015-02-16 14 views
5

Próbuję zbudować aplikację za pomocą kolby i Scrapy. Muszę przekazać list adresów URL do pająka. Próbowałem przy użyciu następującej składni:Przekazywanie listy jako argumenty w Scrapii

__init__: in Spider 
self.start_urls = ["http://www.google.com/patents/" + x for x in u] 

Flask Method 
u = ["US6249832", "US20120095946"] 
os.system("rm static/s.json; scrapy crawl patents -d u=%s -o static/s.json" % u) 

Znam podobną rzecz można zrobić odczytując plik zawierający wymagane adresy URL, ale mogę przekazać listę adresów URL do indeksowania?

Odpowiedz

5

przesłonić pająka __init__() metoda:

class MySpider(Spider): 
    name = 'my_spider'  

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

     endpoints = kwargs.get('start_urls').split(',') 
     self.start_urls = ["http://www.google.com/patents/" + x for x in endpoints] 

i przekazać listę punktów końcowych za pośrednictwem linii argumentu polecenia -a:

scrapy crawl patents -a start_urls="US6249832,US20120095946" -o static/s.json 

Zobacz także:


Zauważ, że można też run Scrapy ze skryptu:

+0

To wygląda bardzo obiecujące rozwiązanie, to nawet nie wymagają przechowywania numery patentowe na liście. Dzięki. –

Powiązane problemy