Проблема при извлечении цены из booking.com с помощью scrapy css - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь извлечь названия отелей вместе с их ценами на сайте booking.com. Мне удалось извлечь названия отелей и сохранить их в контейнерах товаров, однако я изо всех сил пытаюсь извлечь соответствующие цены из веб-страницы. Мой код ниже:

import scrapy

from ..items import KonkurrenzanalyseItem


class Konkurrenzanalyse(scrapy.Spider):
    name = 'Booking'
    start_urls = [
    'https://www.booking.com/searchresults.de.html?aid=304142&label=gen173nr-1DCAEoggI46AdIM1gEaDuIAQGYAQe4AQfIAQ3YAQPoAQGIAgGoAgO4AuadkPIFwAIB&sid=f5f5396810ee33128397135370be94ba&tmpl=searchresults&checkin_month=2&checkin_monthday=18&checkin_year=2020&checkout_month=2&checkout_monthday=19&checkout_year=2020&class_interval=1&dest_id=-1821233&dest_type=city&dtdisc=0&from_sf=1&group_adults=2&group_children=0&inac=0&index_postcard=0&label_click=undef&no_rooms=1&order=price&postcard=0&raw_dest_type=city&room1=A%2CA&sb_price_type=total&shw_aparth=1&slp_r_match=0&src_elem=sb&srpvid=704b677afe570188&ss=Lübeck&ss_all=0&ssb=empty&sshis=0&ssne=Lübeck&ssne_untouched=Lübeck&top_ufis=1&rows=25&offset=25'
    ]

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

        hotel_name = response.css('.sr-hotel__name::text').extract()
        hotel_price = response.css('.bui-price-display__value::text').extract()

        items['hotel_name'] = hotel_name
        items['hotel_price'] = hotel_price

        yield items

Следующее изображение представляет цену, которую я хочу извлечь из html кода: enter image description here

К настоящему времени, код выводит следующие значения, в которых цены еще не указаны: enter image description here

Поскольку я довольно новичок ie в этой среде, извините, если у меня возник вопрос не на 100% точно сформулировано.

1 Ответ

1 голос
/ 14 февраля 2020

Мне кажется, что ваш css селектор чуть-чуть выключен, попробуйте:

hotel_price = response.css('div.bui-price-display__value.prco-inline-block-maker-helper::text').extract_first()

Посмотрите на этот полезный css ресурс селектора здесь

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