2016-07-02 7 views
0

Ich verwende Scrapy 1.1, meine Frage ist:Scrapy: Nach der Verwendung von `start_requests()` um URLs zu erstellen, ist `start_urls` auch notwendig?

Nach start_requests() mit Urls zu machen, start_urls ist auch notwendig?
Kann ich es löschen?

Zum Beispiel:

class demoSpider(RedisSpider): 
    name = "demospider" 

    #Can I delete `start_urls`? 
    redis_key = 'demospider:start_urls' 
    start_urls = ['http://www.example.com'] 

    def start_requests(self): 
     pages=[] 
     for i in range(1,10): 
      url='http://www.example.com/?page=%s'%i 
      page=scrapy.Request(url) 
      pages.append(page) 
     return pages 
+1

Nein, es wird keinen Unterschied machen, Sie können es entfernen. Sie könnten natürlich nur eine Liste kompilieren und vergessen mit start_requests –

Antwort

1

Alle scrapy Spinnen von scrapy.Spider erben müssen (oder es Kinder wie scrapy.spiders.CrawlSpider) Wenn Sie diese Klasse eröffnen Sie werden sehen, dass self.start_urls nur in start_requests Methode verwendet wird. Wenn Sie die vererbte start_requests-Methode überschreiben, wird start_urls nicht mehr verwendet und kann nicht definiert oder gelöscht werden.

Verwandte Themen