我是靠谱客的博主 贪玩大船,这篇文章主要介绍爬取微博热搜,实现数据可视化,制作动态可视化图前言一、爬取微博热搜内容二、开始画动态图,现在分享给大家,希望可以做个参考。

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于python数据分析之禅 ,作者小dull鸟

python数据分析之禅今天教大家如何用pyecharts制作微博热搜榜动态展示视频,先上视频看看效果:

爬取微博热搜,实现数据可视化,制作动态可视化图

 

教程主要有2部分:

一是python爬取微博热搜内容
二是用pyecharts制作动态视频

下面给大家详细介绍一下

爬取微博热搜,实现数据可视化,制作动态可视化图

 

一、爬取微博热搜内容

微博热搜网址为:

复制代码
1
https://s.weibo.com/top/summary

爬取微博热搜,实现数据可视化,制作动态可视化图

 

经分析,微博热搜数据就在网页中,可以直接requests请求,然后BeautifulSoup解析获取内容,最后存入表格中,代码如下(完整代码在文末):

复制代码
1
2
3
4
5
6
7
8
9
10
for i, item in enumerate(items[1:11]): result = [] rank = '第{0}名'.format(i+1) # 微博排名 num = str(item.find('span')).replace('<span>', '').replace('</span>', '') # 微博热度 title = item.find('a').text # 微博内容 result.append(time_stamp) result.append(rank) result.append(num) result.append(title) with open('1.csv', 'a+',newline='') as f: f_csv = csv.writer(f) f_csv.writerow(result)

微博热搜一般是1分钟更新一次,所以再给代码加个定时器:

复制代码
1
2
3
4
schedule.every(1).minutes.do(run) #run为自定义热搜爬虫函数,设置1分钟爬取1次 while True: schedule.run_pending()

让程序跑一会,我们的数据就弄好了

爬取微博热搜,实现数据可视化,制作动态可视化图

 

二、开始画动态图

1.pandas读取数据

复制代码
1
2
3
import pandas as pd data=pd.read_csv('微博热搜.csv',encoding='gbk')

2.基本动态图画法

复制代码
1
2
3
4
5
6
7
8
from pyecharts import options as opts from pyecharts.charts import Bar, Timeline from pyecharts.faker import Faker x = Faker.choose()tl = Timeline()for i in range(2015, 2020): bar = ( Bar() .add_xaxis(x) .add_yaxis("", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i))) ) tl.add(bar, "{}年".format(i)) tl.render_notebook()

爬取微博热搜,实现数据可视化,制作动态可视化图

 

2.将图形反转,导入横坐标(排名)、纵坐标(热度)

复制代码
1
2
3
4
5
6
7
tl = Timeline() for i in range(20): bar = ( Bar() .add_xaxis(list(data['内容'])[i*10:i*10+10][::-1]) .add_yaxis("微博热搜榜", list(data['热度'])[i*10:i*10+10][::-1]) .reversal_axis() .set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i))) ) tl.add(bar, "{}年".format(i))tl.render_notebook()` </pre>

爬取微博热搜,实现数据可视化,制作动态可视化图

 

3.将标签放置在图形右边,将图形整体右移

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
from pyecharts.charts import Bar, Timeline,Grid tl = Timeline()for i in range(20): bar = ( Bar() .add_xaxis(list(data['内容'])[i*10:i*10+10][::-1]) .add_yaxis("微博热搜榜", list(data['热度'])[i*10:i*10+10][::-1]) .reversal_axis() .set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i))) .set_series_opts(label_opts=opts.LabelOpts(position="right")) #将标签放置在图形右边 ) tl.add(bar, '') grid = ( Grid() .add(bar, grid_opts=opts.GridOpts(pos_left="25%",pos_right="0%")) #将图形整体右移 ) tl.add(grid, '')tl.render_notebook()

爬取微博热搜,实现数据可视化,制作动态可视化图

 

4.设置播放速度,隐藏timeline组件,设置自动播放

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
tl = Timeline() for i in range(20): bar = ( Bar() .add_xaxis(list(data['内容'])[i*10:i*10+10][::-1]) .add_yaxis("微博热搜榜", list(data['热度'])[i*10:i*10+10][::-1]) .reversal_axis() .set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i))) .set_series_opts(label_opts=opts.LabelOpts(position="right")) #将标签放置在图形右边 ) tl.add(bar, "") grid = ( Grid() .add(bar, grid_opts=opts.GridOpts(pos_left="25%",pos_right="0%")) #将图形整体右移 ) tl.add(grid, "") tl.add_schema( play_interval=100, #播放速度 is_timeline_show=False, #是否显示 timeline 组件 is_auto_play=False,) #是否自动播放 tl.render_notebook()

爬取微博热搜,实现数据可视化,制作动态可视化图

 

5.设置主题,增加时间标签

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tl = Timeline({"theme": ThemeType.MACARONS}) for i in range(20): bar = ( Bar({"theme": ThemeType.MACARONS}) .add_xaxis(list(data['内容'])[i*10:i*10+10][::-1]) .add_yaxis("微博热搜榜", list(data['热度'])[i*10:i*10+10][::-1]) .reversal_axis() .set_global_opts( title_opts=opts.TitleOpts("{}".format(list(data['时间'])[i*10]),pos_right='0%',pos_bottom='15%'), xaxis_opts=opts.AxisOpts( splitline_opts=opts.SplitLineOpts(is_show=True)), yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True), axislabel_opts=opts.LabelOpts(color='#FF7F50')),) .set_series_opts(label_opts=opts.LabelOpts(position="right",color='#9400D3')) ) grid = ( Grid() .add(bar, grid_opts=opts.GridOpts(pos_left="25%",pos_right="0%")) ) tl.add(grid, "{}年".format(i)) #设置标签 tl.add_schema( play_interval=100, #播放速度 is_timeline_show=False, #是否显示 timeline 组件 is_auto_play=True, ) tl.render_notebook()

爬取微博热搜,实现数据可视化,制作动态可视化图

最后

以上就是贪玩大船最近收集整理的关于爬取微博热搜,实现数据可视化,制作动态可视化图前言一、爬取微博热搜内容二、开始画动态图的全部内容,更多相关爬取微博热搜内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部