2014-04-09 9 views

Odpowiedz

7

Zapoznaj się z stats page from the scrapy documentation. Dokumentacja stwierdza, że ​​Collector Stats, ale może być konieczne dodanie do kodu pająka, aby można było z nim zrobić.

EDYCJA: Ryzykując wydmuchiwanie własnej trąbki, jeśli interesowałeś się konkretnym przykładem, wysłałem answer about how to collect failed urls.

EDIT2: Po wielu poszukiwaniach, najwyraźniej żaden import nie jest konieczny. Po prostu użyj self.crawler.stats.set_value()!

+0

hmm. zwraca '' ImportError: nie może importować przeszukiwacza nazw''. '' Plik "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scrapy/stats.py", linia 1, w from scrapy.project import crawler'' – mattes

+0

To dziwne. Rozumiem, że twój podstawowy pająk działa bezbłędnie? – Talvalin

+0

tak. działa tak długo, jak nie robię nic z '' stats''. Oto przykład tego, jak wygląda mój pająk: https://gist.github.com/mattes/10367042 – mattes

1

Z scrapy 0.24 - stats Używam go na drodze obserwacji:

class TopSearchesSpider(CrawlSpider): 
    name = "topSearches" 
    allowed_domains = ["...domain..."] 

    start_urls = (
     'http://...domain...', 
    ) 

    def __init__(self, stats): 
     super(TopSearchesSpider, self).__init__() 
     self.stats = stats 

    @classmethod 
    def from_crawler(cls, crawler): 
     return cls(crawler.stats) 

    def parse_start_url(self, response): 
     sel = Selector(response); 
     url = response.url; 

     self.stats.inc_value('pages_crawled') 
     ... 

Super metoda jest wywołanie konstruktora CrawlSpider wykonać swój własny kod.

0

Dodaj to wewnątrz klasy pająka

def my_parse(self, response): 
    print self.crawler.stats.get_stats() 
Powiązane problemy