2016-08-29 9 views
2

Hallo habe eine grundlegende Spinne, die ausgeführt wird, um alle Links auf einer bestimmten Domäne zu holen. Ich möchte sicherstellen, dass es seinen Zustand behält, so dass es von dort weitergehen kann, wo es geblieben ist. Ich habe die gegebene URL http://doc.scrapy.org/en/latest/topics/jobs.html. Aber wenn ich es das erste Mal versuche, läuft es gut und ich beende es mit Ctrl + C und wenn ich versuche, es fortzusetzen, stoppt der Crawl auf der ersten URL selbst.Scrapy Spider nicht speichern Zustand (persistent state)

unten ist das Protokoll, wenn es endet:

2016-08-29 16:51:08 [scrapy] INFO: Dumping Scrapy stats: 
{'downloader/request_bytes': 896, 
'downloader/request_count': 4, 
'downloader/request_method_count/GET': 4, 
'downloader/response_bytes': 35320, 
'downloader/response_count': 4, 
'downloader/response_status_count/200': 4, 
'dupefilter/filtered': 149, 
'finish_reason': 'finished', 
'finish_time': datetime.datetime(2016, 8, 29, 16, 51, 8, 837853), 
'log_count/DEBUG': 28, 
'log_count/INFO': 7, 
'offsite/domains': 22, 
'offsite/filtered': 23, 
'request_depth_max': 1, 
'response_received_count': 4, 
'scheduler/dequeued': 2, 
'scheduler/dequeued/disk': 2, 
'scheduler/enqueued': 2, 
'scheduler/enqueued/disk': 2, 
'start_time': datetime.datetime(2016, 8, 29, 16, 51, 7, 821974)} 
2016-08-29 16:51:08 [scrapy] INFO: Spider closed (finished) 

Hier ist meine Spinne:

from scrapy.spiders import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 
from Something.items import SomethingItem 

class maxSpider(CrawlSpider): 
    name = 'something' 
    allowed_domains = ['thecheckeredflag.com', 'inautonews.com'] 
    start_urls = ['http://www.thecheckeredflag.com/', 'http://www.inautonews.com/'] 

    rules = (Rule(LinkExtractor(allow=()), callback='parse_obj', follow=True),) 


    def parse_obj(self,response): 

    for link in LinkExtractor(allow=self.allowed_domains,deny =()).extract_links(response): 
     item = SomethingItem() 
     item['url'] = link.url 
     yield item 
     #print item 

Scrapy Version: 1.1.2 Scrapy

Python-Version: 2.7

Ich bin neu zu scrapy, wenn ich mehr Informationen posten muss, lass es mich wissen.

+0

Wie sieht Ihr Terminal/CMD-Anruf aus? Verwendet es die Syntax, wie sie es vorschlägt: 'scrapy crawl somespider -s JOBDIR = crawls/somespider-1'? – dblclik

+0

Ja, genau das gleiche. Es läuft auch das erste Mal richtig, aber wenn ich die oben genannten sind die Statistiken für den Lebenslauf –

+0

Können Sie das Protokoll für einfügen, wenn Ihr Schaber beginnt zu laufen? Wo die Konfiguration passiert. –

Antwort

2

Der Grund dafür war, dass der Spinnenprozess abrupt beendet wurde.

Die Spinne wurde nicht ordnungsgemäß heruntergefahren, wenn ich die Strg + C-Taste drücke. Wenn der Crawler nun das erste Mal ordnungsgemäß herunterfährt, wird er ebenfalls ordnungsgemäß fortgesetzt.

Stellen Sie also sicher, dass der Crawler ordnungsgemäß beendet/beendet wird, damit er fortgesetzt werden kann.

Verwandte Themen