2016-04-18 31 views
0

Ich habe versucht, Rezepttitel aus dem Nahrungsnetzwerk zu crawlen, und ich möchte rekursiv auf die nächste Seite wechseln. Ich verwende Python 3 so einige Funktionen in scrapy sind mir nicht zur Verfügung, aber hier ist das, was ich bisher:Rekursives Crawlen funktioniert nicht mit Scrapy Spider

import scrapy 
from scrapy.http      import Request 
from scrapy.contrib.spiders    import CrawlSpider, Rule 
from scrapy.linkextractors    import LinkExtractor 
from scrapy.selector     import Selector 
from scrapy.selector     import HtmlXPathSelector 
from testspider.items     import testspiderItem 
from lxml import html 

    class MySpider(CrawlSpider): 
     name  = "test" 
     allowed_domains = ["foodnetwork.com"] 
     start_urls = ["http://www.foodnetwork.com/recipes/aarti-sequeira/middle-eastern-fire-roasted-eggplant-dip-babaganoush-recipe.html"] 
     rules = (Rule(LinkExtractor(allow=(), restrict_xpaths=('//div[@class="recipe-next"]/a/@href',)), callback="parse_page", follow= True),) 

     def parse(self, response): 
      site = html.fromstring(response.body_as_unicode()) 
      titles = site.xpath('//h1[@itemprop="name"]/text()') 

      for title in titles: 
       item = testspiderItem() 
       item["title"] = title 
       yield item 

Die Tags von der Webseite Quelle sind:

<div class="recipe-next"> 
    <a href="/recipes/food-network-kitchens/middle-eastern-eggplant-rounds-recipe.html">Next Recipe</a> 
</div> 

Jede Hilfe wäre Schätze das!

+0

Haben Sie jemals Ihr Problem gelöst? – Steve

Antwort

0

CrawlSpider verwendet die Parse-Methode selbst, wenn Sie sie überschreiben, funktionieren die Dinge nicht wie erwartet, see the docs. Um

die docs zu zitieren Wenn Crawl Spinne Regeln schreiben, vermeiden wie Rückruf mit Parse, da die CrawlSpider die Parse-Methode verwendet, um sich seine Logik zu implementieren. Also, wenn Sie die Parse-Methode überschreiben, wird die Crawl-Spinne nicht mehr arbeiten.

Auch Ihr Code-Snippet zeigt nicht die Quelle für Ihre parse_page() Methode.

Verwandte Themen