一、前言
本文演示如何使用 Python 抓取携程景区的评论数据。通过逆向分析接口参数,结合 requests 库模拟请求,最终实现数据的获取、清洗与存储。
二、网络请求分析
- 定位接口 打开携程景区详情页(例如哈尔滨冰雪大世界),按 F12 打开开发者工具。点击'下一页'或滚动页面,观察 Network 面板中的请求变化。通常动态更新的数据会通过 POST 请求调用后端接口,而静态页面则是 GET 请求。
通过搜索评论内容关键字,可以定位到核心接口 getCommentCollapseList。

- 提取参数 在请求详情中查看 Request Headers 和 Payload。重点关注 Cookie 中的身份标识(如 GUID, UBT_VID)以及 JSON 参数中的分页信息(pageIndex, pageSize)。如果不确定如何构造请求,可以使用浏览器右键复制为 cURL (bash),然后通过 curlconverter.com 转换为 Python 代码作为参考。

三、代码实现
1. 基础请求封装
首先构建一个函数来模拟发送请求。注意,Cookie 和 Token 具有时效性,实际运行时可能需要定期刷新。
import requests
def crawl_comment(page_index=1):
"""
模拟携程景区评论接口请求
:param page_index: 页码,从 1 开始
"""
cookies = {
'GUID': 'YOUR_GUID_HERE',
'MKT_CKID': 'YOUR_MKT_CKID_HERE',
# ... 其他必要的 Cookie 字段 ...
'_RF1': 'YOUR_IP_ADDRESS',
'UBT_VID': 'YOUR_UBT_VID',
# 请根据实际浏览器环境替换以下敏感信息
'cticket': 'YOUR_CTICKET',
'login_uid': 'YOUR_LOGIN_UID'
}
headers = {
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
}
params = {
: ,
:
}
json_data = {
: {
: ,
: ,
: ,
: page_index,
: ,
: ,
: ,
: ,
:
},
: {
: ,
: ,
: ,
: ,
: ,
:
}
}
url =
response = requests.post(url, params=params, cookies=cookies, headers=headers, json=json_data)
response.json()


