Не идет на вторую страницу, чтобы извлечь данные с помощью скрапа - PullRequest
0 голосов
/ 01 ноября 2019

Сохранение данных одной страницы и отсутствие перехода на вторую страницу и отсутствие ошибок.

    import scrapy
    from ..items import QoutetutorialItem
    class QouteSpider(scrapy.Spider):
        name = 'qoute'
        page_num =2;
        allowed_domains = ['http://quotes.toscrape.com']
        start_urls = ['http://quotes.toscrape.com/page/1/']

        def parse(self, response):
            all_div_quote = response.css("div.quote")
            items = QoutetutorialItem()
            for x in all_div_quote:
                title = x.css("span.text::text").extract();
                author = x.css(".author::text").extract();
                tag = x.css(".tag::text").extract();
                items['title'] = title
                items['author'] = author
                items['tag'] = tag
                yield items
            next_page = 'http://quotes.toscrape.com/page/'+str(QouteSpider.page_num)+'/'

            # if next_page is not None:
            if QouteSpider.page_num <11:
                QouteSpider.page_num+=1
                yield response.follow(next_page  , callback= self.parse)

1 Ответ

0 голосов
/ 02 ноября 2019

Просто сделай это. Во-первых, извлеките URL следующей страницы из источника страницы, как он там присутствует, а затем сделайте запрос на это. Вот как это будет выглядеть.

next_page = response.css('.next ::attr(href)')

if next_page:  
   yield response.follow(next_page, callback=self.parse)

Это решит вашу проблему, и теперь вам также не нужны вычисления для URL следующей страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...