简而言之:本指南将详细介绍如何使用 Python 端到端地抓取 Booking.com 的数据:提取搜索列表、酒店页面、每晚价格以及客人评论。您将获得两种互补的方法:一种是针对 JavaScript 渲染页面的 Selenium Wire 工作流,另一种是更快捷的方案,该方案直接调用 Booking.com 的内部 /dml/graphql 端点,此外还包含反屏蔽策略、货币处理以及针对约 1,000 条结果分页限制的解决方法。Booking.com 正是旅游和酒店业团队反复使用的数据集:实时每晚房价、竞争对手定位、各区域房源供应情况、各酒店的客人评价。问题在于,这些数据均未通过面向公众的开放 API 提供,因此若想通过编程获取,最终只能自行对 Booking.com 进行某种形式的网页抓取。本教程展示了两种实用的 Python 实现路径,并结合了通常在项目第二周就会困扰开发者的生产环境注意事项。
截至本文撰写之时,Booking.com 是网络上最大的住宿预订平台之一,涵盖酒店、度假村及短期住宿等数百万家可预订住宿。(我们将具体房源数量保持在近似值范围内;该公司的公开数据常有波动。)该平台高度依赖 JavaScript 驱动,并配备了真正的反机器人防御机制,因此简单的 requests.get 脚本往往在发挥作用前就已失败。
你将学习如何运行基于 Selenium 的搜索结果抓取工具,如何通过反向工程从内部 GraphQL 接口提取相同数据,如何获取酒店详情页、价格及评论,以及如何利用站点地图和查询分区突破结果限制。代码基于 Python 3.10+,并假设你已熟悉开发者工具和 CSS 选择器。




