首页 > 解决方案 > 隐藏跨度价格标签 (python) 的 css/xpath 是什么?

问题描述

一段时间以来,我一直在试图弄清楚如何从中获得价格。有人可以向我解释如何从该站点提取数据的示例吗?它可以是请求、美丽的汤、scrapy 或 selenium。我只是想看看一种方法来获得这些隐藏的元素。

我正在使用 python 3.8 macOS。 在此处输入图像描述

网址:

https://www.booking.com/searchresults.html?label=gen173nr-1DCAEoggI46AdIM1gEaJgCiAEBmAExuAEHyAEM2AED6AEB-AECiAIBqAIDuAKJn_76BcACAdICJDU3YTg4ZDhiLTRkZmUtNGNlYi1hZGYxLWFiNjNiY2NjOGNhM9gCBOACAQ&sid=c3b17be33020b4a83d961a9fc14cf31d&sb=1&sb_lp=1&src=index&src_elem=sb&error_url=https%3A%2F%2Fwww.booking.com%2Findex.html%3Flabel% 3Dgen173nr-1DCAEoggI46AdIM1gEaJgCiAEBmAExuAEHyAEM2AED6AEB-AECiAIBqAIDuAKJn_76BcACAdICJDU3YTg4ZDhiLTRkZmUtNGNlYi1hZGYxLWFiNjNiY2NjOGNhM9gCBOACAQ%3Bsid%3Dc3b17be33020b4a83d961a9fc14cf31d%3Bsb_price_type%3Dtotal%26%3B&ss=Maribor&is_ski_area=0&ssne=Maribor&ssne_untouched=Maribor&dest_id=-88556&dest_type=city&checkin_year=2020&checkin_month=9&checkin_monthday=16&checkout_year=2020&checkout_month=9&checkout_monthday=18&group_adults=2&group_children=0&no_rooms=1&b_h4u_keep_filters=&from_sf=1

标签: pythonseleniumweb-scrapingscrapypython-requests

解决方案


我声明 Booking.com 网站明确违反抓取。如果您想要这个带有硒的脚本,请在页面上找到每家酒店的价格。如果您需要其他元素,请告诉我。

编辑:此脚本找到确定的价格,您必须将课程更改为其他价格。

对不起英语我是意大利学生:-)

from selenium import webdriver

driver = webdriver.Chrome('CHROMEDRIVER PATH')

driver.implicitly_wait(30)

driver.get('https://www.booking.com/searchresults.html?label=gen173nr-1DCAEoggI46AdIM1gEaJgCiAEBmAExuAEHyAEM2AED6AEB-AECiAIBqAIDuAKJn_76BcACAdICJDU3YTg4ZDhiLTRkZmUtNGNlYi1hZGYxLWFiNjNiY2NjOGNhM9gCBOACAQ&sid=c3b17be33020b4a83d961a9fc14cf31d&sb=1&sb_lp=1&src=index&src_elem=sb&error_url=https%3A%2F%2Fwww.booking.com%2Findex.html%3Flabel%3Dgen173nr-1DCAEoggI46AdIM1gEaJgCiAEBmAExuAEHyAEM2AED6AEB-AECiAIBqAIDuAKJn_76BcACAdICJDU3YTg4ZDhiLTRkZmUtNGNlYi1hZGYxLWFiNjNiY2NjOGNhM9gCBOACAQ%3Bsid%3Dc3b17be33020b4a83d961a9fc14cf31d%3Bsb_price_type%3Dtotal%26%3B&ss=Maribor&is_ski_area=0&ssne=Maribor&ssne_untouched=Maribor&dest_id=-88556&dest_type=city&checkin_year=2020&checkin_month=9&checkin_monthday=16&checkout_year=2020&checkout_month=9&checkout_monthday=18&group_adults=2&group_children=0&no_rooms=1&b_h4u_keep_filters=&from_sf=1')

prices = driver.find_elements_by_xpath("//span[@class='bui-u-sr-only']")

for price in prices:
    print(price.text)

推荐阅读