关于本次代码用到的库有xpath库和requests和pygal
xpath库的下载请点开此链接查看:https://blog.csdn.net/weixin_45859193/article/details/107452936
pygal用法
chart=pygal.Bar | 获取全部方法 |
---|---|
chart.title | 标题 |
chart.x_labels | x轴数据的名字 |
chart.x_title | x轴居中位置填写的标题 |
chart.add | 显示数据可视化 |
chart.render_in_browser | 用浏览器的方式打开 |
因为最近一直沉迷b站无法自拔,所以就想实现一下排行榜的播放量统计(可能是我闲得慌,所以想学一下数据分析的可视化 = =,我也是初学数据分析,如果有更好的方法欢迎评论指导!)
如果想获取可视化,首先就得用爬虫把数据爬出来切转换成列表,所以第一步可以这样:
1.获取目标url地址
2.用xpath爬取我们想要的数据
3.清洗数据
4.保存数据
5.数据可视化
这几步搞清楚就ok了,很简单的。
import requests
import pygal
from lxml import etree
url='https://www.bilibili.com/ranking/all/0/0/3'
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.69 Safari/537.36'}
response=requests.get(url,headers=headers).content.decode()
html=etree.HTML(response)
flem_name=html.xpath('//div[@class="content"]//div[@class="info"]/a//text()')
link=html.xpath('//div[@class="detail"]//text()')
i=0
temp=[]
#清洗数据
for n in range(0,100):
try:
link[i]=link[i].split('万')[0]
temp.append(float(link[i]))
i+=3
flem_name[n]='{}名 '.format(n+1)+flem_name[n]
except:
break
chart = pygal.Bar()
chart.title = "b站综合得分"
chart.x_labels=flem_name
chart.x_title='b站排行榜名单'
chart.add('播放量(万)',temp)
#浏览器打开
chart.render_in_browser()
勤学勤练,一定会获得成果的!!