【2026最新携程景点爬虫】用python爬取上千条携程某景点下的评论
你是否想一键获取携程某景点下的评论,收集完之后可以去分析,可以去阅读?我用Python 写了一个携程景点评论爬虫,可以一键爬取全部数据。1.2 数据截图字段:评论人,评论时间,评论内容,ip属地,评分。主要的字段是这几个,后续拿到这些数据可以做很多数据分析。
·
一、背景分析
1.1 开发背景
你是否想一键获取携程某景点下的评论,收集完之后可以去分析,可以去阅读?
我用Python 写了一个携程景点评论爬虫,可以一键爬取全部数据。
1.2 数据截图

字段:评论人,评论时间,评论内容,ip属地,评分。
主要的字段是这几个,后续拿到这些数据可以做很多数据分析。
二、主要技术
软件全部模块采用python语言开发,主要用到的库如下:
import requests
import pandas as pd
import time
携程景点的评论没有反爬,也没有很复杂。
部分核心代码展示:
for id in ids: # 遍历景点
for page in range(1,35): # 分页控制(1-34页)
json_data = {
'arg': {
'channelType': 2,
'collapseType': 0,
'commentTagId': 0,
'pageIndex':page,
'pageSize': 10,
'poiId': id,
'sourceType': 3,
'sortType': 1,
'starType': 0,
},
'head': {
'cid': '09031025312449459187',
'ctok': '',
'cver': '1.0',
'lang': '01',
'sid': '8888',
'syscode': '09',
'auth': '',
'xsid': '',
'extension': [],
},
} # 构造请求体
response = requests.post(
'https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList',
params=params,
# cookies=cookies,
headers=headers,
json=json_data,
) # 发送POST请求
time.sleep(2) # 请求间隔
try:
sj = response.json()['result']['items'] # 解析JSON响应
for i in sj: # 遍历单页评论
dic={}
try:
dic['评论人'] = i.get("userInfo").get("userNick")
except:
dic['评论人'] = '匿名'
dic['评论时间'] = i.get("publishTypeTag").split(' ')[0]
dic['评论内容'] = i.get("content")
print(i.get("content"))
dic['IP属地'] = i.get("ipLocatedName")
dic['评分'] = i.get("score")
dic['tags'] = i.get("recommendItems")
dic['是否有帮助'] = i.get("usefulCount")
dic['keywords'] = id
lst.append(dic) # 存入列表
整体流程说明:
- 初始化配置
:设置爬虫基础环境
- 模拟登录
:通过请求头伪装浏览器
- 分页抓取
:按景点+页码双重遍历
- 数据解析
:提取结构化评论信息
- 持久化存储
:导出为Excel文件
- 反爬处理
:请求间隔+异常捕获机制
三、景点id如何获取
比如说我们爬取东方明珠的景点评论。

首先:打开开发者工具,点击网络。接着拉到最下边评论,点击下一页,我们会发现出来了许多接口。

找到getComment...这个接口,点击进去,我们需要的是这个poiID后边的参数,这个就代表东方明珠了。

接着把此ID填入代码里即可运行。
注意这个只能爬取网页版可见的3000条,若想要爬取全部的评论数据,就需要app相关的进一步的爬虫了。
四、说明
运行前需更换最新cookie。 附完整视频讲解:https://www.bilibili.com/video/BV1bnzFBjEk8/
以上就是本次的全部内容,大家有需要的话可以在公重号获取,名字与此账号同名,欢迎大家一起交流学习。
更多推荐
所有评论(0)