python如何爬取微博热搜并实现数据可视化
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下python如何爬取微博热搜并实现数据可视化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言先上视频看
千家信息网最后更新 2025年12月02日python如何爬取微博热搜并实现数据可视化
小编给大家分享一下python如何爬取微博热搜并实现数据可视化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
前言
先上视频看看效果:
一、爬取微博热搜内容
微博热搜网址为:
https://s.weibo.com/top/summary
经分析,微博热搜数据就在网页中,可以直接requests请求,然后BeautifulSoup解析获取内容,最后存入表格中,代码如下(完整代码在文末):
for i, item in enumerate(items[1:11]): result = [] rank = '第{0}名'.format(i+1) # 微博排名 num = str(item.find('span')).replace('', '').replace('', '') # 微博热度 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分钟更新一次,所以再给代码加个定时器:
schedule.every(1).minutes.do(run) #run为自定义热搜爬虫函数,设置1分钟爬取1次while True: schedule.run_pending()
让程序跑一会,我们的数据就弄好了
二、开始画动态图
1.pandas读取数据
import pandas as pddata=pd.read_csv('微博热搜.csv',encoding='gbk')2.基本动态图画法
from pyecharts import options as optsfrom pyecharts.charts import Bar, Timelinefrom pyecharts.faker import Fakerx = 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.将图形反转,导入横坐标(排名)、纵坐标(热度)
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()` 3.将标签放置在图形右边,将图形整体右移
from pyecharts.charts import Bar, Timeline,Gridtl = 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组件,设置自动播放
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.设置主题,增加时间标签
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()以上是"python如何爬取微博热搜并实现数据可视化"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容
图形
热度
数据
标签
商店
营业额
营业
代码
右边
整体
篇文章
组件
速度
可视化
动态
时间
不怎么
主题
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
无线网络安全审计报告
2017网络技术现状
哪些名人是学计算机网络技术专业
中科大王小漠网络安全英才班
方舟加入官方服务器闪退
盐城智能软件开发哪家好
网上购物车管理系统数据库
威胁国家网络安全案例
用开源软件开发8051
奉贤区上门软件开发报价表
网络安全法宣传内容
恺英网络技术
互联网科技巨头
济南同城互联网科技有限公司
长沙软件开发公司多吗
网络安全制度
网络安全知识竞赛库
大数据软件开发怎么样
怎么理解java软件开发
数据库行锁加锁和释放
通信运营商疫情期间网络安全
战地1服务器怎么改规则
锋云服务器ID
银行网络安全主题科普活动
软件开发工程师跟项目
软件开发公司的营业范围
银行软件开发怎样
服务器上下线管理规定
云免服务器搭建卖流量
从化网络数据库维护价格