探索旅游新趋势:携程景点数据揭秘

01 前言

   携程景点数据的收集和分析为用户提供了更智能、个性化的旅游规划和推荐服务。基于用户的偏好和历史行为数据,携程可以为用户量身定制旅游路线和景点推荐,提供更贴心的旅游体验

    在本文中,我们将介绍如何使用requests对携程的旅游景点数据进行爬取。

    requests 库提供了简洁而直观的 API,使得发送各种类型的 HTTP 请求变得非常简单。无论是 GET 请求、POST 请求还是其他类型的请求,都可以通过 requests 库轻松实现

02

安装requests 库

  2.1  安装requests 库  

  1. 你可以使用 pip 来安装这些库:

        

    pip install requests

2.2 寻找页面接口

    2.2.1  搜索城市景点接口

        

图片

        当前接口 链接 和 post 参数
url = 'https://m.ctrip.com/restapi/soa2/18109/json/getAttractionList?_fxpcqlniredt=09031015313388236487&x-traceID=09031015313388236487-1712974794650-8267936' data = {"index":1,"count":10,"sortType":1,"isShowAggregation":true,"districtId":1,"scene":"DISTRICT","pageId":"214062","traceId":"14f9745c-92ad-f5c5-07bb-171293c80647","extension":[{"name":"osVersion","value":"10"},{"name":"deviceType","value":"windows"}],"filter":{"filterItems":[]},"crnVersion":"2020-09-01 22:00:45","isInitialState":true,"head":{"cid":"09031015313388236487","ctok":"","cver":"1.0","lang":"01","sid":"8888","syscode":"09","auth":"","xsid":"","extension":[]}}

 2.2.2  开始请求

    构建携带data query 参数请求

headers = {        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',        'Cookie': 你的cookies    }    html = requests.post(url, headers=headers, json=data).json()    attractionList = html['attractionList']    for attraction in attractionList:        data = attraction['card']        commentCount = data['commentCount']        commentScore = data['commentScore']        coordinate = [data['coordinate']['latitude'], data['coordinate']['longitude']]        coverImageUrl = data.get('coverImageUrl','')        # 距离        distanceStr = data.get('distanceStr','')        # 地点        displayField = data.get('displayField', None)        heatScore = data.get('heatScore','')        # 景点名        poiName = data['poiName']        isFree = data['isFree']        if isFree:            price = 0            # 原价            marketPrice = 0        else:            price = data.get('price',0)            # 原价            marketPrice = data.get('marketPrice',0)        # 类别信息        sightCategoryInfo = data.get('sightCategoryInfo','')        # 标签        tagNameList = data.get('tagNameList','')        # 5a        sightLevelStr = data.get('sightLevelStr', None)

 2.2.3 存为csv文件

    将需要字段存储csv文件

f = open('csv/全国各景点全.csv', 'w', encoding="utf-8", newline='') csvwrite = csv.writer(f)csvwrite.writerow(['城市', '景点名', '地点', '距离', '坐标', '评论数','评论分','热评分','封面','是否免费','价格','原价','类别信息','标签','是否5A'])        csvwrite.writerow([city,poiName,displayField,distanceStr,coordinate,commentCount,commentScore,heatScore,coverImageUrl,isFree,price,marketPrice,sightCategoryInfo,tagNameList,sightLevelStr])

3.0 通过获取全国 city id,可请求全国景点数据并保存

                       

图片

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

britlee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值