Python3 爬取携程网[1]: 根据好评优先顺序,获取北京五星级酒店列表

本文介绍了如何使用Python3爬取携程网上的北京五星级酒店列表,按照好评优先顺序。首先分析页面,寻找动态接口,接着通过requests库发送POST请求,并伪造请求头以避免IP被封,最后解析响应并保存结果到CSV文件。
摘要由CSDN通过智能技术生成

1. 项目目的

俗话说,“巧妇难为无米之炊”。在数据科学道路上,数据获取是数据利用、分析等后续工作中的重要前提。虽然说,如今有许多开源的数据集,但是,锻炼自己从浩如烟海的网络中获取原始数据的能力,对于培养数据科学的基础技能是十分重要的。

2. 需求分析

本文目的是根据好评优先顺序,爬取携程网上的北京五星级酒店列表。

3. 实验环境

  • 语言:Python 3.7
  • 操作系统:MacOS
  • 编程IDE:Pycharm
  • 浏览器:Chrome

4. 具体实现

这一部分是本文的重点,将按照基本爬虫思路进行记录。

4.1 分析页面

对于一个学生而言,拿到一道题,首先要做的工作是熟读题目、进行分析,而不是马上下笔答题。同理,爬虫之前,认真分析要爬取的页面,会使得工作事半功倍。

  1. 打开携程网.
    在页面上选择:
  • 城市:北京
  • 入住日期:2019-02-19
  • 退房日期:2019-02-20
  • 房间数:1间
  • 住客数:2人
  • 酒店级别:五星级/豪华
    如图1所示:
    Pic1
图1 携程主页及酒店信息选择
  1. 分析北京五星级酒店页面
    点击图1中的“搜索”按钮,在酒店列表页面中选择好评优先排序方式。如图2所示。
    Pic2
图2 北京五星级酒店列表页面
  1. 寻找页面接口
    因为每一个酒店都是可点击跳转的,即可交互,所以,为动态页面。静态页面可以直接通过页面源码,实现获取信息;动态页面需要找寻接口,然后从其接口的源码中获取信息。
    在页面空白处,点击右键,选择“检查”,可以看到页面的源码。找寻接口,必须选中第一行的“Network”选项。
    点击页面刷新按钮,即可在Filter中输入“Hotel”,选择“XHR”,即可找到页面接口。

Pic3

图3 酒店列表页面接口
由图3可以看到,左部分列表中的“AjaxHotelList.aspx”就是需要的接口,在右侧的preview中,可以看到,页面上的酒店列表就存放于“hotelPos
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值