2017-12-19 4 views
1

Ich versuche Scarpy zu lernen.Scrapy Paginierung funktioniert nicht

# -*- coding: utf-8 -*- 
import scrapy 


class QuotesSpider(scrapy.Spider): 
    name = 'quotes' 
    allowed_domains = ['quotes.toscrape.com/'] 
    start_urls = ['http://quotes.toscrape.com/'] 

    def parse(self, response): 
     quotes = response.xpath('//*[@class="quote"]') 

     for quote in quotes: 
      text = quote.xpath(".//*[@class='text']/text()").extract_first() 
      author = quote.xpath("//*[@itemprop='author']/text()").extract_first() 
      tags = quote.xpath(".//*[@class='tag']/text()").extract(); 

      item = { 
       'author_name':author, 
       'text':text, 
       'tags':tags 
      } 
      yield item 
    next_page_url = response.xpath("//*[@class='next']/a/@href").extract_first() 
    absolute_next_page_url = response.urljoin(next_page_url) 
    yield scrapy.Request(url=absolute_next_page_url,callback=self.parse) 

Aber Scrapy ist nur erste Seite analysieren. Was ist falsch in diesem Code? Ich habe es von youtube Tutorial kopiert.

Bitte helfen.

Antwort

3

Es ist nur, dass alle Anfragen mit Ausnahme der ersten als "Offsite" gefiltert werden. Dies liegt daran, dass Sie dieses zusätzliche / am Ende des Wertes haben:

allowed_domains = ['quotes.toscrape.com/'] 
        # REMOVE THIS SLASH^