使用Selenium抓取Booking.com酒店页面HTML
可以按照以下步骤编写代码:
-
安装selenium模块,下载相应的浏览器驱动(比如ChromeDriver)并设置环境变量。
-
导入selenium模块和time模块。
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)
- 等待页面加载完成,获取每个酒店的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)
- 关闭浏览器。
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&aid=1662037&ucfs=1&arphpl=1&checkin=2023-05-18&checkout=2023-05-19&dest_id=-1900349&dest_type=city&group_adults=2&req_adults=2&no_rooms=1&group_children=0&req_children=0&hpos=1&hapos=1&sr_order=popularity&nflt=class%3D3&srpvid=663264e64fd300db&srepoch=1683382862&all_sr_blocks=49980802_298619250_0_0_0&highlighted_blocks=49980802_298619250_0_0_0&matching_block_id=49980802_298619250_0_0_0&sr_pri_blocks=49980802_298619250_0_0_0__32800&from_sustainable_property_sr=1&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网站的结构可能会随着时间推移而发生变化,因此你需要根据实际情况调整代码。
希望这篇教程对你有帮助!
原文地址: https://www.cveoy.top/t/topic/nR7F 著作权归作者所有。请勿转载和采集!