Python获取去哪儿旅游数据并作可视化攻略

您所在的位置:网站首页 旅游景点数据分析报告 Python获取去哪儿旅游数据并作可视化攻略

Python获取去哪儿旅游数据并作可视化攻略

2024-05-31 10:14| 来源: 网络整理| 查看: 265

嗨喽,大家好呀~这里是爱看美女的茜茜呐

开发环境:

版 本: python 3.8

编辑器:pycharm

第三方库:

requests >>> pip install requests

parsel >>> pip install parsel

模块安装:

按住键盘 win + r, 输入cmd回车 打开命令行窗口, 在里面输入 pip install 模块名

👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可

需求分析

确定需要的数据

找数据真实来源

https://travel.qunar.com/travelbook/list.htm?order=hot_heat

静态数据

代码实现步骤

发送请求

获取数据

提取数据

保存数据

数据获取

导入模块

import requests # 发送请求 代码当中用来访问网站的模块 import parsel # 解析数据的模块 import csv with open('攻略.csv', mode='a', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) csv_writer.writerow(['title', 'date', 'days', 'photo_nums', 'fee', 'people', 'trip', 'view', 'love', 'comment', 'href']) for page in range(1, 201): url = f'https://travel.qunar.com/travelbook/list.htm?page={page}&order=hot_heat' 发送请求 response = requests.get(url=url) 获取数据 html_data = response.text 提取数据 # re / css / xpath # css: ul.b_strategy_list > li # xpath: //ul[@class="b_strategy_list "]/li select = parsel.Selector(html_data) lis = select.xpath('//ul[@class="b_strategy_list "]/li') # 二次的数据提取 for li in lis: # li.css('h2 > a::text').get() title = li.xpath('./h2/a/text()').get() date = li.xpath('./p[@class="user_info"]//span[@class="date"]/text()').get("") days = li.xpath('./p[@class="user_info"]//span[@class="days"]/text()').get("") photo_nums = li.xpath('./p[@class="user_info"]//span[@class="photo_nums"]/text()').get("") fee = li.xpath('./p[@class="user_info"]//span[@class="fee"]/text()').get("") people = li.xpath('./p[@class="user_info"]//span[@class="people"]/text()').get("") trip = li.xpath('./p[@class="user_info"]//span[@class="trip"]/text()').get("") view = li.xpath('./p[@class="user_info"]//span[@class="icon_view"]/span/text()').get("") love = li.xpath('./p[@class="user_info"]//span[@class="icon_love"]/span/text()').get("") comment = li.xpath('./p[@class="user_info"]//span[@class="icon_comment"]/span/text()').get("") href = li.xpath('./h2/a/@href').get() print(title, date, days, photo_nums, fee, people, trip, view, love, comment, href) 保存数据 with open('攻略.csv', mode='a', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) csv_writer.writerow([title, date, days, photo_nums, fee, people, trip, view, love, comment, href]) 数据可视化 import pandas as pd from pyecharts.commons.utils import JsCode from pyecharts.charts import * from pyecharts import options as opts data = pd.read_csv('去哪儿_数分.csv') data

data.info() data = data[~data['地点'].isin(['攻略'])] data = data[~data['天数'].isin(['99+'])] data data.drop_duplicates(inplace=True) data['人均费用'].fillna(0, inplace=True) data['人物'].fillna('独自一人', inplace=True) data['玩法'].fillna('没有', inplace=True) data['天数'] = data['天数'].astype(int) data = data[data['人均费用'].values>200] data = data[data['天数']"normal": { "barBorderRadius": [30, 30, 30, 30], 'shadowBlur': 10, 'shadowColor': 'rgba(0,191,255,0.5)', 'shadowOffsetY': 1, 'opacity': 0.8 } }) ) pie.render('3.html')

m3 = data1['出发时间'].value_counts().sort_index()[:] m4 = m3['2021'].index n4 = m3['2021'].values m3['2021'].sort_values().tail(10) 出游时间分析 line = ( Line() .add_xaxis(m4.tolist()) .add_yaxis('',n4.tolist()) ) line.render('4.html')

2021年的旅游时间曲线大约在五月一号起伏最大,原因肯定是因为假期调休延长至4天,为了调整自己生活及工作的状态,很多人利用这个假期去旅行放松自己。

出游玩法分析 m5 = [] n5 = [] for i in range(20): m5.append(list[i][0]) n5.append(list[i][1]) m5.reverse() m6 = m5 n5.reverse() n6 = n5 bar = ( Bar(init_opts=opts.InitOpts(theme='dark', width='1000px',height ='500px')) .add_xaxis(m6) .add_yaxis('', n6) .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='insideRight', font_style='italic'), itemstyle_opts=opts.ItemStyleOpts( color=JsCode("""new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: 'rgb(255,99,71)' }, { offset: 1, color: 'rgb(32,178,170)' }])""")) ) .set_global_opts( title_opts=opts.TitleOpts(title="出游玩法分析"), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)), legend_opts=opts.LegendOpts(is_show=True)) .reversal_axis() ) bar.render('5.html')

“摄影”和“美食”可谓与旅行息息相关,一次完整的旅行最不能缺的就是“摄影”,拍美食发到朋友圈、拍风景发到朋友圈、拍完美的自己发到朋友圈;

工作之后就没有了寒暑假,所以利用周末来一次短途旅行就成为了大多数人的首选。

m7 = data1['旅行时长'].value_counts().index.tolist() n7 = data1['旅行时长'].value_counts().values.tolist() data_day = data1['旅行时长'].value_counts().sort_values() 出游天数分析 bar = ( Bar(init_opts=opts.InitOpts(theme='dark', width='1000px',height ='500px')) .add_xaxis(data_day.index.tolist()) .add_yaxis('',data_day.values.tolist()) .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='insideRight', font_style='italic'), itemstyle_opts=opts.ItemStyleOpts( color=JsCode("""new echarts.graphic.LinearGradient(1, 0, 0, 0, [{ offset: 0, color: 'rgb(255,99,71)' }, { offset: 1, color: 'rgb(32,178,170)' }])""")) ) .set_global_opts( title_opts=opts.TitleOpts(title="旅行时长"), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)), legend_opts=opts.LegendOpts(is_show=True)) .reversal_axis() ) bar.render('6.html')

旅行时长主要分布在2-5天之间,3天最为普遍,太短会未尽兴致,太长又会花销太大,若有一份好的旅行计划,3天应该足够让你赏过一座城市的名胜,吃过大部分的特色美食,领略到这个城市的风情,也足够让你喜欢上这座城市。

data_mo = data1[((data1['旅行月份'] =='七月')|(data1['旅行月份'] =='八月'))&(data1['人物']=='三五好友')].drop(['旅行时长'],axis = 1) data_mo.head(10) data_mo2 = data1[((data1['人物'] =='情侣')|(data1['人物'] =='独自一人'))&(data1['旅行月份']=='十月')].drop(['旅行时长'],axis = 1) data_mo2.head(10) import jieba import jieba.analyse import re punc = '~`!#$%^&*()_+-=|\';":/.,?>


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3