可以按照以下步骤编写代码:

  1. 安装selenium模块,下载相应的浏览器驱动(比如ChromeDriver)并设置环境变量。

  2. 导入selenium模块和time模块。

import selenium.webdriver as webdriver
import time
  1. 创建一个浏览器对象,并打开目标网页。
url = 'https://www.booking.cn/searchresults.zh-cn.html?sid=7c0a78f8c1db56ee42ab9578d1032f13&aid=1662037&ss=%E6%88%90%E9%83%BD&ssne=%E5%8D%8E%E7%9B%9B%E9%A1%BF&ssne_untouched=%E5%8D%8E%E7%9B%9B%E9%A1%BF&lang=zh-cn&src=searchresults&dest_id=-1900349&dest_type=city&ac_position=0&ac_click_type=b&ac_langcode=zh&ac_suggestion_list_length=5&search_selected=true&search_pageview_id=c99561b2a4c20653&ac_meta=GhBjOTk1NjFiMmE0YzIwNjUzIAAoATICemg6BuaIkOmDvUAASgBQAA%3D%3D&checkin=2023-05-18&checkout=2023-05-19&group_adults=2&no_rooms=1&group_children=0&sb_travel_purpose=leisure&nflt=class%3D3'
browser = webdriver.Chrome()
browser.get(url)
  1. 等待页面加载完成,获取每个酒店的HTML,并存放在一个列表里面。
hotel_list = []
time.sleep(5) # 等待5秒钟,让页面加载完成
hotels = browser.find_elements_by_class_name('sr_item')
for hotel in hotels:
    html = hotel.get_attribute('innerHTML')
    hotel_list.append(html)
  1. 关闭浏览器。
browser.quit()

完整代码如下:

import selenium.webdriver as webdriver
import time

url = 'https://www.booking.cn/searchresults.zh-cn.html?sid=7c0a78f8c1db56ee42ab9578d1032f13&aid=1662037&ss=%E6%88%90%E9%83%BD&ssne=%E5%8D%8E%E7%9B%9B%E9%A1%BF&ssne_untouched=%E5%8D%8E%E7%9B%9B%E9%A1%BF&lang=zh-cn&src=searchresults&dest_id=-1900349&dest_type=city&ac_position=0&ac_click_type=b&ac_langcode=zh&ac_suggestion_list_length=5&search_selected=true&search_pageview_id=c99561b2a4c20653&ac_meta=GhBjOTk1NjFiMmE0YzIwNjUzIAAoATICemg6BuaIkOmDvUAASgBQAA%3D%3D&checkin=2023-05-18&checkout=2023-05-19&group_adults=2&no_rooms=1&group_children=0&sb_travel_purpose=leisure&nflt=class%3D3'
browser = webdriver.Chrome()
browser.get(url)

hotel_list = []
time.sleep(5) # 等待5秒钟,让页面加载完成
hotels = browser.find_elements_by_class_name('sr_item')
for hotel in hotels:
    html = hotel.get_attribute('innerHTML')
    hotel_list.append(html)

browser.quit()

例如,成都拖板鞋青年旅舍旅行酒店的HTML代码可能是这样的:

<a href='https://www.booking.cn/hotel/cn/chengdu-tuo-ban-xie-qing-nian-lv-she.zh-cn.html?sid=7c0a78f8c1db56ee42ab9578d1032f13&amp;aid=1662037&amp;ucfs=1&amp;arphpl=1&amp;checkin=2023-05-18&amp;checkout=2023-05-19&amp;dest_id=-1900349&amp;dest_type=city&amp;group_adults=2&amp;req_adults=2&amp;no_rooms=1&amp;group_children=0&amp;req_children=0&amp;hpos=1&amp;hapos=1&amp;sr_order=popularity&amp;nflt=class%3D3&amp;srpvid=663264e64fd300db&amp;srepoch=1683382862&amp;all_sr_blocks=49980802_298619250_0_0_0&amp;highlighted_blocks=49980802_298619250_0_0_0&amp;matching_block_id=49980802_298619250_0_0_0&amp;sr_pri_blocks=49980802_298619250_0_0_0__32800&amp;from_sustainable_property_sr=1&amp;from=searchresults#hotelTmpl' class='e13098a59f' target='_blank' rel='noopener noreferrer' data-testid='title-link'><div data-testid='title' class='fcab3ed991 a23c043802'>POSHPACKER·成都拖板鞋青年旅舍旅行酒店(太古里春熙路地铁站店)</div><div class='e6e585da68'>在新窗口中打开</div></a>

注意:

  • 确保你已经安装了Selenium和ChromeDriver,并且将ChromeDriver路径添加到系统环境变量中。
  • 等待页面加载完成非常重要,否则可能会获取到不完整的HTML代码。
  • Booking.com网站的结构可能会随着时间推移而发生变化,因此你需要根据实际情况调整代码。

希望这篇教程对你有帮助!

使用Selenium抓取Booking.com酒店页面HTML

原文地址: https://www.cveoy.top/t/topic/nR7F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录