前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python批量获取同程酒店的信息

python批量获取同程酒店的信息

作者头像
你像时光唯美i
发布2022-08-26 14:09:02
8352
发布2022-08-26 14:09:02
举报
文章被收录于专栏:python开发教程python开发教程

上次我们写过一个使用python批量获取携程酒店的信息,这次我们写一个使用python批量获取同程酒店的信息。话不多说,我们立马开始。

1.分析目标网址:

首先我们打开同程旅游首页,找到酒店这个标签链接点击进入同程酒店页面,如图:

接下来选择自己想要获取酒店信息的城市,点击更多经济连锁酒店,就可以看到所有酒店的信息,如图:

然后我们使用谷歌浏览器的开发者工具检查,选择network工具,点击下一页后我们会发现一个包,点开这个包对应的链接,点击preview会发现包的内容,点开我们就会发现这页所对应全部的酒店信息。如下图:

至此源网页已经找到,分析目标网址完毕。

2. 模拟浏览器发送请求,获取响应内容

接下来我们开始写代码

首先导入包

代码语言:javascript
复制
import csv
import time
import requests
import random

接下来我们构造请求头

代码语言:javascript
复制
 headers = {
     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
     'Cookie': 'NewProvinceId=28; NCid=346; NewProvinceName=%E8%A5%BF%E8%97%8F; NCName=%E6%8B%89%E8%90%A8; Hm_lvt_64941895c0a12a3bdeb5b07863a52466=1631776033; 17uCNRefId=RefId=4140683&SEFrom=baidu&SEKeyWords=%E5%90%8C%E7%A8%8B; TicketSEInfo=RefId=4140683&SEFrom=baidu&SEKeyWords=%E5%90%8C%E7%A8%8B; CNSEInfo=RefId=4140683&tcbdkeyid=ords=%E5%90%8C%E7%A8%8B&RefUrl=https%3A%2F%2Fwww.baidu.com%2Fother.php%3Fsc.a00000avdfEjy0rOTjolliAJlScnJ-XM151bidSa_bH9Hv7MyYaT5mNSyzw9jDNikIR1egWnzuaMwhXzrXOFi0CRH3lRwro5j2IbWpbkSZ3BokqeszdMsSWEcMCxNRmbHJQ-tpsrE2PUyU1DDUMyX-2m7bfeA_7_7O3EverFsTzkAopHsTkyVLeA7gsbNVgYTzov0G-av0KALRu7Hva-nZCvUXIq.DY_NR2Ar5Od663rj6tJr9DZXurEDkvNq-MH_3JN9h9mzNdet60.TLFWgv-b5HDkrfK1ThPGujYknHb0THY0IAYq1pz110KdTvNzgLw4TARqn0K9u7qYXgK-5Hn0IvqzujLPoQ5n0ZFWIWYk0ZNzU7qGujYkPHc4P163PH010Addgv-b5HDYPjfkrjT10AdxpyfqnHDknHR4nHb0UgwsU7qGujYknWcLnsKsI-qGujYs0A-bm1dcfbR0TA-b5Hc40APGujYzPWb0mLFW5HDYPWbv%26dt%3D1631776028%26wd%3D%25E5%2590%258C%25E7%25A8%258B%26tpl%3Dtpl_12273_25897_22126%26l%3D1529788503; qdid=39264|1|6928722|0a6c16; __tctma=144323752.1631776033931912.1631776033655.1631776033655.1631776033655.1; __tctmu=144323752.0.0; __tctmz=144323752.1631776033655.1.1.utmccn=(organic)|utmcmd=organic|utmEsl=gb2312|utmcsr=baidu|utmctr=%e5%90%8c%e7%a8%8b; longKey=1631776033931912; __tctrack=0; Hm_lvt_c6a93e2a75a5b1ef9fb5d4553a2226e5=1631776036; businessLine=hotel; H5Channel=mnoreferseo%2CSEO; indate=2021-09-16; outdate=2021-09-17; H5CookieId=9514bb31-e728-470f-a0ac-28df4cd9bcd5; passport_login_state=pageurl=https%3a%2f%2fwww.ly.com%2fhotel%2fhotellist%3fcityId%3d373%26city%3d373%26inDate%3d2021-09-16%26outDate%3d2021-09-17%26filterList%3d1008_2%2c8888_1%26pageIndex%3d3%26pageSize%3d20%26t%3d1631776088093; _tcudid_v2=V__pedmmLBImjGZJzjdIa6jHafC_zsu7VoUSlYm3tVA; cnUser=userid=156111227&token=170019001122035019154114028025119002066025036192168034149237199082135045033186066065003012115043247146177250247212079037119005233145153218159003241253030085192193223251210201186144018081193133191139025027008164008026&loginType=passport&authcode=A9F2824059B4A61131344524F0166902; us=userid=156111227&nickName=%e4%bd%a0%e5%83%8f%e6%97%b6%e5%85%89%e5%94%af%e7%be%8ei&level=1&isUpgrade=true; nus=userid=156111227&nickName=%e4%bd%a0%e5%83%8f%e6%97%b6%e5%85%89%e5%94%af%e7%be%8ei&level=1; Hm_lpvt_64941895c0a12a3bdeb5b07863a52466=1631776179; route=8b01b73ddb9a0b35bfc0aec7417be66a; Hm_lpvt_c6a93e2a75a5b1ef9fb5d4553a2226e5=1631776182; __tctmd=144323752.205136534; __tctmc=144323752.209969555; __tctmb=144323752.2951134107403607.1631776181966.1631776181966.7; JSESSIONID=D12723A15127E82F5297685553393E5A'
}

在这里我们说一下这个cookie的作用:是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息,简单的来说cookie是网页记录你登录的信息,如果你的请求头里没有cookie的话,那么发送爬虫请求的时候就默认你未登录状态,那么一些数据是拿不到的。经过我的验证,如果请求头里没有cookie信息那么酒店的价格你是拿不到的。

使用requests库模拟浏览器发送请求

代码语言:javascript
复制
response = requests.get(url=url,headers=headers).json()

3.解析响应内容

解析响应内容

这里会用的python的一些基础知识,主要是对json数据的操作。

代码语言:javascript
复制
hotelinfos = response['data']['hotelList']
#print(hotelinfos)
for hotelinfo in hotelinfos:
    #print(hotelinfo)
    name = hotelinfo['hotelName']
    star = hotelinfo['starLevel']
    price = hotelinfo['price']
    leixing = hotelinfo['starLevelDes']
    score = hotelinfo['commentScore']
    scoredes = hotelinfo['commentScoreDes']
    commentnum = hotelinfo['commentCount']
    commentdes = hotelinfo['commentMainTag']
    biaoqian = hotelinfo['themeList']
    address = hotelinfo['hotelAddress']
    area = hotelinfo['areaName']

4.保存内容

代码语言:javascript
复制
with open('hotelinfo1.csv', mode='a', newline="") as csvfile:
    csvwriter = csv.writer(csvfile, delimiter=',')
    csvwriter.writerow([name,star,price,leixing,score,scoredes,commentnum,commentdes,biaoqian,address,area])

保存网页内容的代码基本相同,都是使用python的内置库csv,大家可以把代码保存下次直接复制粘贴就可以使用,如果想获取多页信息可以使用for循环遍历就可以啦。

数据详情

ok,以上就是全部的内容,非常感谢。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python开发教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档