赞
踩
去哪儿是中国领先的在线OTA网站,为消费者提供机票、酒店、会场 、度假产品的实时搜索,并提供旅游产品团购以及其他旅游信息服务。去哪儿网站上有丰富的图片、评论数据,这些大量的数据对于从事数据岗位的来说的确是一种福利,有了这些我们可以练习爬虫技能、数据分析与可视化,漂亮的图片做文案素材也是一种不错的选择。
疫情总会过去的,宅了这么久,相信很多人疫情后都会来一场说走就走的旅行。小编今天准备爬取去哪儿的攻略库,并制作了一份详细的数据分析、可视化的旅行攻略。
爬虫流程三步曲:
通过对网页的分析,我们有几个点是确定的:
1.确定爬取字段
爬取数据的字段有:区域、目的地、标题、链接、攻略作者、出发日期、天数、照片数、人数、玩法、费用、阅读数、点赞数、评论数、行程等。
2.获取最大页数
def getPageNum(html):
#获取总页数
pageNum=1
bsObj = BeautifulSoup(html,"html.parser")
pageList = bsObj.find("div",attrs = {"class":"b_paging"}).find_all("a")
if(pageList):
pageNum = pageList[-2].text
return int(pageNum)
3.解析网页
link = "https://travel.qunar.com" + book.h2.a["href"] #标题 title = book.h2.a.text places = book.findAll("p", attrs = {"class":"places"}) #行程 if len(places)>1: trip_places = places[1].text else: trip_places=places[0].text user_info = book.find("p", attrs = {"class":"user_info"}) intro = user_info.find("span", attrs = {"class":"intro"}) #作者 user_name = intro.find("span", attrs = {"class":"user_name"}).text #print("user_name:",user_name) date = intro.find("span", attrs = {"class":"date"}).text #天数 days = intro.find("span", attrs = {"class":"days"}).text #照片数 photoTmp = intro.find("span", attrs = {"class":"photo_nums"}) if(photoTmp): photo_nums = photoTmp.text else: photo_nums = "没有照片" # 人数 peopleTmp = intro.find("span", attrs = {"class":"people"}) if(peopleTmp): people = peopleTmp.text else: people = ""
通过上述3步,小编已经将去哪儿的数据爬取下来了。看着是不是很简单,不过看似简单,实操起来未必就这么简单哦。实践出真知,慢慢体会爬虫过程中的要点和注意点。下面是成果展示
至此我们已经获取了数据。旅行是为了放松心情、体验地方特色。为了一场完美的旅行,制作一份详细的旅行攻略是必不可少的。
对于获取的数据,我们需要进行进一步的处理以满足分析的需求,主要做的数据处理步骤如下:
具体代码实现
#数据读取 import pandas as pd import re #数据读取 base_data = pd.read_excel('trip_data_merge.xlsx') #删除重复值 base_data.drop_duplicates(inplace=True) #分析中不需要的字段 base_data = base_data.drop(['链接'], axis=1) #字段修正,方便统计 base_data['天数']= base_data['天数'].apply(lambda x :re.sub("\D", "", x) ) base_data['照片数']= base_data['照片数'].apply(lambda x :re.sub("\D", "", x) ) base_data['费用']= base_data['费用'].apply(lambda x :re.sub("\D", "", str(x) )) base_data['费用'] = base_data['费用'].apply(lambda x : eval(x) if len(x)>0 else 0 ) base_data['date']= base_data['出发日期'].apply(lambda x :x.split( )[0] ) base_data['date_year']= base_data['出发日期'].apply(lambda x :x.split( )[0][:4]) base_data['阅读数']= base_data['阅读数'].apply(lambda x : int(re.sub("\D", "", str(x)))*10000 if str(x).find('万') else x)
外出旅行,首先要考虑的肯定的费用问题。因疫情原因,在费用的数据分析统计中,我们剔除了2020年的数据,考虑了2017年、2018年、2019年的数据。
上图展示了近三年主要热门目的地人均消费情况,包含国内、国外热门地区。根据数据统计,国外人均平均消费为9461元,国内为3313元,游客在国外消费是国内消费的2.85倍。国内人均消费的排名前四名:丽江、三亚、香港、上海。在国外消费前四名:马尔代夫、法国、美国、日本。为什么游客在马尔代夫的人均消费比上海人均消费高达6倍的差距呢?
马尔代夫游客人群分布
上海游客人群分布
马尔代夫,一个名字听起来就让人浮想联翩的地方,被称作上帝抛洒在人间的项链,人间最后的乐园,吸引了很多人去度假休闲,其中情侣占比高达54.8%,再加上机酒消费,这也成为马尔代夫消费高的一个重要原因,上海游客人群比较分散,其中情侣占比15%左右,一人旅行、三五好友占比相对较高。
上海游客逗留时长
马尔代夫游客逗留时长
判断一个城市对游客对心引力,游客逗留时间是最核心指标。从上图我们可以看到马尔代夫的逗留时间占比中4-7天、8-10天合计占比高达80%以上。上海逗留时间在1-3天占比为52.45%,4-7天、8-10天合计占比约为41%,这样是马尔代夫人均消费高的一个重要因素。
什么样的旅行方式是游客最喜欢的呢?我相信仁者见仁,智者见智。我们看看游客外出最喜欢的玩法排行榜
从上图中我们可以看到,美食、购物+美食、短途周末、海滨海岛、自驾等玩法是大家的最爱,探险、环游、骑行等也收到不少人的喜爱,你喜欢什么样的玩法呢?
去一个地方去旅行,有些景点必须要去的,对于一个陌生的城市,怎么样可以快速确定打卡景点呢?小编选择了上海、成都、武汉,看看这些是否有遗漏的打卡景点呢。
想去的打卡景点都有了,我们要有一个最完美的路线,小编在下面梳理一下网友点赞最高的路线,你是否满意呢?下面进行图片展示。
欢迎转载、收藏本文,码字不易,有所收获点赞支持一下!
为方便进行学习交流,本号开通了技术交流群,添加方式如下:
直接添加小助手微信号:pythoner666,备注:CSDN+python,或者按照如下方式添加均可!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。