下次就带岳母去这些地方玩——Python 爬虫在 Power BI 中的运用

北京这么大,景点这么多,当被媳妇儿问“下周带我妈去哪儿玩?”屏幕前的你是不是也慌得一比???

一番冥思苦想之后,作为Power BI深度用户的小编我自然又绕了回来--能不能用Power BI解决这个问题呢?

又一番冥思苦想之后,小编认为:可以!

且看下文如何分解:

Step1:网页分析

分析去某儿网的网点结构,决定爬取哪些信息,景点名称,星级,排名,游客评论数量,攻略数量,经纬度(html里面有)

file

Step2:编写爬虫代码

用requests返回网页信息,再用BeautifulSoup解析网页(考虑尾页很多景点星级数据都为0,只取了前二十页)

import requests

import pandas as pd

from bs4 import BeautifulSoup

import numpy as np

name,lat,lng,star,strategy,comment=[ ],[ ],[ ],[ ],[ ],[ ]

for i in range(1,21): #只取前20页,每页展示10个景点

url='http://travel.qunar.com/p-cs299914-beijing-jingdian-1-%s'%i

r=requests.get(url)

soup=BeautifulSoup(r.text,'lxml')

ul=soup.find('ul',class_='list_itemclrfix')

li=ul.find_all('li')

for i in range(len(li)):

name.append(li[i].find('span',class_="cn_tit").text) #提取景点名称

lat.append(li[i]['data-lat']) #提取纬度

lng.append(li[i]['data-lng']) #提取经度

star.append(li[i].find('span',class_="cur_star")['style']) #提取星级

strategy.append(li[i].find('div',class_="strategy_sum").text) #提取攻略数量

comment.append(li[i].find('div',class_="comment_sum").text) #提取评论数量

Attractions=pd.DataFrame({'景点名称':name,'纬度':lat,'经度':lng,'评级':star,'评论数':comment,'攻略数':strategy})

print(Attractions)

Step3:代码植入PowerBI

获取数据-其他-Python脚本,粘贴脚本

file

file

Step4:数据清洗

这里将星级提取为评分。

file

Step5:将景点信息在Dashboard中呈现

位置由经纬度控制,气泡大小代表攻略数量,颜色代表游客评论数量。

file

下次就带岳母去这些地方玩——Python爬虫在Power BI中的运用

Step6:将上图呈给媳妇看看,根据景点在地图上的分布以及火热程度可酌情发表个人意见

总结一下:

1) 需要在本地部署python环境,配置好变量环境;

2) 提前在IDE上编写好爬虫程序,Python的处理结果以Dataframe形式输出;

3) 获取数据-更多-其他-python脚本,在输入框输入调试好的代码;

4) 如需修改代码,编辑查询-更改源-修改代码,注意Dataframe的变量名不能改;

5) 在Power BI中,python除了可以导入外部数据,在数据清洗和可视化也有发挥的地方,有兴趣的小伙伴可以研究研究哦~

今天的内容就是这些,小伙伴们下期再见!

  • PowerPivot工坊原创文章,转载请注明出处!

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊