温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 互联网科技 > 
  • 大数据 > 
  • python如何爬取微博热搜并实现数据可视化

python如何爬取微博热搜并实现数据可视化

发布时间:2022-01-13 15:52:04 来源:亿速云 阅读:1092 作者:小新 栏目: 大数据

小编给大家分享一下python如何爬取微博热搜并实现数据可视化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

前言

先上视频看看效果:

python如何爬取微博热搜并实现数据可视化

一、爬取微博热搜内容

微博热搜网址为:

https://s.weibo.com/top/summary

python如何爬取微博热搜并实现数据可视化

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

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分钟更新一次,所以再给代码加个定时器:

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

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

二、开始画动态图

1.pandas读取数据

import pandas as pd
data=pd.read_csv('微博热搜.csv',encoding='gbk')

2.基本动态图画法

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()

python如何爬取微博热搜并实现数据可视化

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()` </pre>

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

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

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()

python如何爬取微博热搜并实现数据可视化

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如何爬取微博热搜并实现数据可视化

以上是“python如何爬取微博热搜并实现数据可视化”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节
推荐阅读:
  1. Python网络爬虫之爬取微博热搜
  2. python如何实现爬取微博热搜存入Mysql

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python
  • 上一篇新闻:
    android中状态的概念是什么
  • 下一篇新闻:
    Android的状态有什么用

猜你喜欢

  • Java SqlSession的安全性问题及防范措施
  • 如何测试Java中的SqlSession
  • Java SqlSession在不同数据库中的应用差异
  • java中invoke方法如何使用
  • invoke方法在java中的实际作用是什么
  • java invoke方法的主要应用场景
  • 如何正确调用java中的invoke方法
  • invoke方法在java中的参数传递方式
  • java中invoke方法的返回值类型有哪些
  • invoke方法在java中的异常处理机制
最新资讯
  • LAMP环境MySQL索引优化方法
  • LAMP服务器资源监控与管理技巧
  • LAMP环境PHP版本升级注意事项
  • Apache在LAMP中的角色与性能考量
  • LAMP架构适合哪些类型网站
  • Linux中LAMP配置最佳实践分享
  • LAMP与LEMP,Linux服务器如何选择
  • LAMP环境如何保障网站安全
  • Linux下LAMP环境搭建难点解析
  • LAMP架构如何优化Linux服务器性能
相关推荐
  • 使用python怎么爬取微博的热搜数据
  • 使用Python怎么爬取微博热搜关键词
  • python爬虫怎么爬取微博热搜
  • python如何爬取微博热搜存入Mysql
  • Python 怎么爬取微博树洞
  • 怎么用Python爬取微博热搜榜数据
  • python中如何使用Scrapy框架爬虫爬取微博热搜
  • 怎么用Python实现爬取百度热搜信息
  • Python如何实现抖音热搜定时爬取功能
  • 基于PHP如何实现微博热搜实时监控平台

相关标签

python学习笔记 python语法 python第三方库 python小项目 python推导式 python发送邮件 python版本 python多态 python鸭子类型 python运算符 学习python python面向对象 python之函数 python3正则 python3.7.0 python网络编程 python3.10 python知识点 python r Python阶乘
AI

深圳SEO优化公司阳江网站关键字优化四川什么是网站优化滨州泰安网站优化费用网站商城优化建议和规划莱山区网站优化厦门营销型网站优化方案甘肃优化网站优化公司网站询火22星淄博网站优化排名日照网站优化电话合肥经开区网站排名优化鼓楼外贸网站建设优化推广绵阳网站综合优化哪些网站缓存有利于优化广西网站运营优化营销优化网站方法具有云速捷力荐宝安区网站关键词优化综合网站优化平台网站如何优化关键词排名网站有什么优化北京专业网站优化松江区搜狗网站优化方案定制企业网站的搜索引擎优化研究网站排名优化必要选云速捷6服装行业网站优化主要做什么如何来优化自己的网站长春实力强的网站优化与推广优化网站联系a火15星佛山网站优化电池濮阳家装行业网站优化推广特点歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化