Каков наилучший способ нажать кнопку li? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь найти наилучший способ нажать кнопку «Следующая страница» в списке отелей www.booking.com и продолжить работу с пауком.

При осмотре кнопки:

<li class="nextpage"
   a href="/bigcity/offset=15"class=gotopage_2"
</li>

рабочий код для одной страницы:

import scrapy
from ..items import BookItem 

class BookSpiderSpider(scrapy.Spider):
    name = "book_spider"
    start_urls = (
        'https://www.booking.com/smallcity/offset=10',
    )

    def parse(self, response) :
        items = BookItem()

        title_name = response.css('span.sr-hotel__name::text').extract()

        items['title_name'] = title_name

        yield items

a href и class каждый раз меняются при нажатии кнопки

Так что я предполагаю, что код python должен найти кнопку, затем взять другую ссылку, заменить ее на существующий URL и перейти туда

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Пользователь .urljoin, чтобы избежать проблем со схемой URL:

next_page_url = response.urljoin( next_href )
0 голосов
/ 02 мая 2019

Привет, используйте этот фрагмент для вашего приложения

next_page = response.xpath('//a[contains(@class,"ficon-caret-right")]/@href').extract()

        if len(next_page) !=0:
            next_href = next_page[0]
            next_page_url = next_href
            print "==============> next cat pagination url :", next_page_url
            yield scrapy.Request(next_page_url, callback=self.parse)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...