Python获取去哪儿旅游数据并作可视化攻略
嗨喽,大家好呀~这里是爱看美女的茜茜呐
开发环境:
-
版 本: 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[@]/li select = parsel.Selector(html_data) lis = select.xpath('//ul[@]/li') # 二次的数据提取 for li in lis: # li.css('h2 > a::text').get() title = li.xpath('./h2/a/text()').get() date = li.xpath('./p[@]//span[@]/text()').get("") days = li.xpath('./p[@]//span[@]/text()').get("") photo_nums = li.xpath('./p[@]//span[@]/text()').get("") fee = li.xpath('./p[@]//span[@]/text()').get("") people = li.xpath('./p[@]//span[@]/text()').get("") trip = li.xpath('./p[@]//span[@]/text()').get("") view = li.xpath('./p[@]//span[@]/span/text()').get("") love = li.xpath('./p[@]//span[@]/span/text()').get("") comment = li.xpath('./p[@]//span[@]/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['天数']} for j in range(len(word_list)): for i in word_list[j]: if i not in dict: dict[i] = 1 else: dict[i]+=1 #print(dict) list = [] for item in dict.items(): list.append(item) for i in range(1,len(list)): for j in range(0,len(list)-1): if list[j][1]"normal": { "barBorderRadius": [30, 30, 30, 30], 'shadowBlur': 10, 'shadowColor': 'rgba(0,191,255,0.5)', 'shadowOffsetY': 1, 'opacity': 0.8 } }) ) pie.render('3.html')
-
-
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!