携程多城市酒店数据爬虫:20 + 字段批量抓取,支持全国城市遍历
·
多城市批量爬取:读取city.csv中的城市 ID 列表,自动循环爬取全国多个城市酒店数据✅ 20 + 字段全覆盖:包含酒店基础信息、评分详情、价格信息、房型数据等核心维度,数据维度超全面:
- 基础信息:酒店 ID、名称、类型、星级、城市、地址、图片 URL
- 评分数据:好评分、好评数、评论描述、卫生 / 设施 / 环境 / 服务分项评分、评论标签
- 价格房型:房型名称、房型 ID、原价、优惠价
- 分类信息:酒店种类、所属城市
✅ 稳定可靠:
- 内置异常捕获机制,HTTP 错误、请求超时自动容错,避免爬虫中断
- 完整 Cookie + 请求头配置,模拟浏览器访问,降低反爬风险
- 自动创建 CSV 文件,数据追加写入,避免重复生成
✅ 灵活可配置:支持调整入住 / 退房日期、每页数据量、排序方式等参数
核心实现
- 数据来源:调用携程酒店列表接口
fetchHotelList,POST 请求获取结构化 JSON 数据 - 城市遍历:从
city.csv读取城市 ID 和名称,循环切换目标城市爬取 - 数据解析:精准提取 JSON 中的 20 + 字段,自动处理数据格式(如去除价格符号、逗号)
- 持久化存储:自动创建
hotel.csv,逐条追加写入爬取数据,确保数据不丢失 - 异常处理:捕获 HTTP 错误、请求超时、数据解析异常,保证爬虫稳定性
使用说明
- 安装依赖:
pip install requests - 准备文件:
- 城市列表:
city.csv(需包含两列:城市 ID、城市名称,首行为表头) - 脚本同级目录运行,自动生成
hotel.csv结果文件
- 城市列表:
- 自定义参数调整:
- 日期配置:修改
checkInDate(入住日期)、checkOutDate(退房日期) - 分页设置:调整
pageIndex(起始页码)、pageSize(每页酒店数量,默认 10 条) - 排序方式:修改
filters中type:17的value(1 = 欢迎度排序,可按需更换) - 城市范围:编辑
city. csv,添加 / 删除目标城市 ID 和名称for temp in temps: hotelId = temp['hotelInfo']['summary']['hotelId'] commentScore = temp['hotelInfo']['commentInfo']['commentScore'] #好评分 commenterNumber = temp['hotelInfo']['commentInfo']['commenterNumber'].replace(',','').replace('条点评','').strip() #好评分 commentDescription = temp['hotelInfo']['commentInfo']['commentDescription'] #评论描述 weishengRating = temp['hotelInfo']['commentInfo']['subScore'][0]['scoreAvg'] #卫生评分 shesiRating = temp['hotelInfo']['commentInfo']['subScore'][1]['scoreAvg'] #设施评分 huanjinRating = temp['hotelInfo']['commentInfo']['subScore'][2]['scoreAvg'] #环境评分 fuwuRating = temp['hotelInfo']['commentInfo']['subScore'][3]['scoreAvg'] #服务评分 tagTitle = temp['hotelInfo']['commentInfo']['oneSentenceComment'][0]['tagTitle'] #评论标签 name = temp['hotelInfo']['nameInfo']['name'] #酒店名称 hotelType = temp['hotelInfo']['summary']['hotelType'] #酒店类型 physicsName= temp['roomInfo'][0]['summary']['saleRoomName'] #房型 deletePrice = temp['roomInfo'][0]['priceInfo']['deletePrice'] #原价 displayPrice =temp['roomInfo'][0]['priceInfo']['displayPrice'].replace('¥','').strip() #优惠价 roomId = temp['roomInfo'][0]['summary']['roomId'] #房型id cityName = temp['hotelInfo']['positionInfo']['cityName'] #城市 address = cityName + temp['hotelInfo']['positionInfo']['address'] #地点 categoryName = temp['hotelInfo']['hotelCategory']['categoryName'] #种类 imgUrl = temp['hotelInfo']['hotelImages']['multiImgs'][0]['url'] #图片链接 hotelStar = temp['hotelInfo']['hotelStar']['star'] #星级
- 日期配置:修改
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)