写在前面

在网易云课堂看到城市数据团大鹏老师讲的《Python数据可视化利器:Pyecharts!》[传送门],于是把前一篇南京的景点数据做一个可视化。

1、还是去哪儿网景点爬取

具体可以看之前的帖子
《python爬取景点数据看该去哪里玩——南京篇》

我把代码拿过来按照需要调整一下,只要主要评价数据就行

import requests
from bs4 import BeautifulSoup
import numpy as np
import pandas as pd
import time
#创建函数,获取页面数据
def get_urls(ui,n):  #ui:地址,n:页码数urllst = []for i in range(1,n+1):urllst.append(ui+str(i))return urllst#获得每个页面信息
def get_onepage_data(u): #u:网址r = requests.get(u)soup = BeautifulSoup(r.text, 'lxml')infor = soup.find('ul',class_ = "list_item clrfix").find_all('li')data_jd = []data_link = []for i in infor:dic = {}dic_link = {}#dic['lat'] = i['data-lat']#dic['lng'] = i['data-lng']dic['景点名称'] = i.find('span', class_="cn_tit").textdic['攻略提到数量'] = i.find('div', class_="strategy_sum").textdic['点评数量'] = i.find('div', class_="comment_sum").textdic['景点排名'] = i.find('span', class_="ranking_sum").textdic['驴友去过'] = i.find('span', class_="sum").text.split('%')[0]dic['星级'] = i.find('span', class_="cur_star")['style'].split(':')[1].split('%')[0]#dic['描述'] = i.find('div', class_="desbox").text#dic['链接'] = i.find('a')['href']data_jd.append(dic)        return data_jd#获得所有网页信息
def get_all_data(urls): #urls 网址列表data_list= []for i in urls:       data_list.extend(get_onepage_data(i))        #print('成功采集%i个景点数据' % len(data_list)) df = pd.DataFrame(data_list)   #导入pandas的DataFrame   df.index = df['景点名称']del df['景点名称']               return df#数据字符转数字,以计算处理
def data_collation(df):      #df['lng'] = df['lng'].astype(np.float)#df['lat'] = df['lat'].astype(np.float)df['点评数量'] = df['点评数量'].astype(np.int)df['攻略提到数量'] = df['攻略提到数量'].astype(np.int)df['驴友去过'] = df['驴友去过'].astype(np.int)df['星级'] = df['星级'].astype(np.int)df.fillna(value = 0,inplace = True)  #填充空值,如果列是lnt类型就0;如果是str就用nanreturn df# 筛选综合得分前n名的数据
def data_top(urls,n):  # 前n个数据df = get_all_data(urls)df = data_collation(df)# 构建函数实现字段标准化,标准分cols = ['攻略提到数量','星级','点评数量']for col in cols:df[col + '_b'] = round((df[col] - df[col].min())/(df[col].max() - df[col].min())*100,2)            #由驴友去过比例得分+攻略提到数量得分+星级得分+点评数得分,每项均为0-100分df['综合得分'] = df['驴友去过']+df['攻略提到数量_b']+df['星级_b']+df['点评数量_b']top_n = df.sort_values(by = '综合得分', ascending=False).iloc[:n]    return top_nif __name__=="__main__":start_time = time.time()urls = get_urls('https://travel.qunar.com/p-cs299861-nanjing-jingdian-1-',5) #链接及页数top30_data = data_top(urls,30)  # 前30的数据end_time1 = time.time()print ("爬取基本数据,耗时:",end_time1 - start_time)    

爬取基本数据,耗时: 1.3800303936004639

2、交互式可视化

一种方法就是把这个数据里的’攻略提到数量’、‘星级’、'点评数量’做一个可视化
加载pyecharts,没有的可以在控制台用pip install pyecharts 先安装

from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from pyecharts import options as opts
bar = (#条状图,定义大小样式,样式可以官方文件里找到各种样式Bar(opts.InitOpts(width = '1000px',height = '500px',theme=ThemeType.INFOGRAPHIC))   #增加横轴,标注用景点名称,tolist()将pandas数据转成list.add_xaxis(top_n.index.tolist())#增加纵轴,这里有三种数据.add_yaxis('点评数量',top_n['点评数量'].tolist()).add_yaxis('攻略提到数量',top_n['攻略提到数量'].tolist()).add_yaxis('星级',top_n['星级'].tolist())#全局属性,加这个工具箱和缩略轴还比较好用.set_global_opts(toolbox_opts = opts.ToolboxOpts(is_show = True),  # 设置工具箱datazoom_opts= [opts.DataZoomOpts(range_start=10, range_end=80,is_zoom_lock=False)],   # 设置slider缩略轴)#局部属性,加了一个最大值最小值显示,平均值  .set_series_opts(markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),opts.MarkPointItem(type_="min", name="最小值"),]),markline_opts = opts.MarkLineOpts(data = [opts.MarkLineItem(type_ = 'average', name= '平均值')])))
bar.render_notebook() #就这么简单

整体出来就是下面这样:

其中几个数据可以分别显示,动画演示

调整和拉动缩放轴的效果,动画演示

【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化相关推荐

  1. python爬取去哪儿网酒店信息

    python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...

  2. 【爬虫】用Python爬取去哪儿网热门旅游信息(并打包成旅游信息查询小工具)

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/det ...

  3. python爬取去哪儿网机票_干货|Python爬取《去哪儿》攻略库,制作一份详细的旅行攻略,疫情后来一场说走就走的旅行!...

    去哪儿是中国领先的在线OTA网站,为消费者提供机票.酒店.会场 .度假产品的实时搜索,并提供旅游产品团购以及其他旅游信息服务.去哪儿网站上有丰富的图片.评论数据,这些大量的数据对于从事数据岗位的来说的 ...

  4. python爬取去哪网数据_Python爬虫入门:使用Python爬取网络数据

    1 网络爬虫 引用百度百科的定义:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 简单的说,就是有一个程序可以自动去访问网页. 2 Python爬虫 如何实现爬虫? 简单的讲,一共 ...

  5. python爬取去哪网数据_用户观点:企查查数据爬取技术与Python 爬取企查查数据...

    主体数据来源是全国工商信用网但是每个省的工商系统都不同,要针对每个省的工商系统单独写爬虫每个省的验证码也不同,也要单独做.企查查的原理不是主动爬去数据,而是有人查询该企业时,如果自己的数据库没有该企业 ...

  6. python爬取去哪网数据_python最强的代理池,突破IP的封锁爬取海量数据(送项目源码)...

    一个强大到超乎你的想象的异步IP池项目--async-proxy-pool 随着大型网站反扒机制的增强,更改IP登陆已经成为一种最高效的方式,为此打造一款超强IP池项目,采用最新最快的Python技术 ...

  7. python爬取去哪儿网_python网络爬虫(12)去哪网酒店信息爬取

    目的意义 爬取某地的酒店价格信息,示例使用selenium在Firefox中的使用. 来源 少部分来源于书.python爬虫开发与项目实战 构造 本次使用简易的方案,模拟浏览器访问,然后输入字段,查找 ...

  8. python爬取去哪儿网机票_王老吉携手去哪儿网,打造出行全链路营销盛事

    全球最大规模的人类迁徙来了,"你买到票了吗"代替"最近怎么样",成为了朋友间心照不宣的问候语,而在这个'不孝有三,放假回家为大'的时刻,王老吉携手在线旅游平台领 ...

  9. python爬取去哪儿网机票_去哪儿网:国内机票预订量恢复超五成,杭州进出港增量在两成以上...

    钱江晚报·小时新闻记者 马焱 五一过后,以公商务为主的民航旅客量快速上升.去哪儿网数据显示,五一节后三天以京沪航线为代表的公商务主要航线,反弹增幅达到2倍以上.去哪儿网副总裁兰翔表示,节后民航业国内机 ...

最新文章

  1. 我发现一条惊人规律,年后跳槽BATJ,都是这种人....
  2. 【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )
  3. iOS开发-Xcode入门ObjC程序
  4. General-purpose and introductory examples for the scikit.
  5. 事务RFC(TRFC)原理和实战解析
  6. 彻底明白TCP的三次握手与四次挥手的两张动图
  7. leveldb 学习。
  8. 【2018.3.31】模拟赛之三-ssl2408 比萨【搜索,dfs】
  9. cmap参数 plt_plt.imshow的参数有哪些?
  10. 万用表判断场效应管的好坏
  11. 教大家一个简单的办法
  12. 【更新】PDF控件Spire.PDF V3.9.463发布 | 修复多个PDF转换bug
  13. 基于ORL库的PCA人脸识别系统matlab实现
  14. 跟进分析不一样的MTI商城
  15. 阿里云IoT | HaaS开源百校科技助力计划 —— 开源大使招募
  16. Android SqlDelight详解和Demo例子
  17. Head First Statistics one 做图规则
  18. 为什么在AndroidManifest.xml中Activity的theme用不了Theme.Light.NoTitleBar?
  19. git+commitize+cz-customizable 代码 提交规范
  20. Tensorflow③ Keras的LSTM和TF的LSTM实现的源码剖析

热门文章

  1. 男朋友的内裤旧了不要扔,关键时刻有大用......
  2. IDEA导包报错cannot resolve symbol xxxx问题
  3. 非结构化视频搜索技术
  4. oracle oms启动慢,停止OMS后无法启动Oracle Enterprise 13C。
  5. MDM9x07 平台启动
  6. 机器人能送药、治病、消毒,最大程度保护医生护士不被传染!
  7. imx6 添加matrix keypad
  8. 闲谈swi与ucos
  9. voronoi图编程构造_voronoi图的算法编程实现.doc
  10. 中国天气网天气api接口 天气预报调用方法 2020