Как перейти на следующую страницу с помощью скраба (веб-соскоб) - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь извлечь цитаты из https://www.goodreads.com/quotes. Кажется, я получаю только первую страницу, а следующая часть страницы не работает. Вот мой код:

import scrapy

class QuotesSpider(scrapy.Spider):
    name = 'quotes'

    start_urls = [
        'http://www.goodreads.com/quotes'
    ]

    def parse(self,response):

        for quote in response.xpath("//div[@class='quote']"):
            yield {
                'quoteText': quote.xpath(".//div[@class ='quoteText']").extract_first()
            }

        next_page=response.css("a").xpath("@href").extract()
        if next_page is not None:
            next_page_link=response.urljoin(next_page)
            yield scrapy.Request(url=next_page_link, callback= self.parse)

1 Ответ

0 голосов
/ 25 марта 2020

Вы должны получить href ссылки на следующую страницу. Используйте это для получения следующей страницы URL:

next_page=response.css("a.next_page::attr(href)").get()

Подробнее о селекторах можно прочитать здесь: https://docs.scrapy.org/en/latest/topics/selectors.html

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