python如何爬取微博热搜并实现数据可视化
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,小编给大家分享一下python如何爬取微博热搜并实现数据可视化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言先上视频看
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
蒙古服务器
删除数据库值
派出所网络安全总结
家用监控链接自家网络安全吗
网络技术学院毕业能干什么
r610服务器打开机盖风扇才转
软件开发需求分析设计编码对应
股票导航软件开发
sql创建数据库的过程
违反网络安全管理通报制度
数据库优化的角度
数据库查看作业
新路由 vpn服务器
专业性网络技术服务是真的吗
计算机网络安全自检表
广东企业云空间系统服务器
hcip 网络安全考试内容
软件应用技术和网络技术
数据库连接几个表
梦幻手游怎么下载双平台服务器
软件开发要准备什么
上海php软件开发平均月薪
北京潮尚网络技术有限公司
减少数据库
c 实时数据库
思科网络安全期末答案
查数据库表名
湖南省中职网络安全技能比赛
云服务器如何建立2个ip
连云港网络安全审计系统咨询公司