Python+MySQL+Tableau,某站视频数据可视化(1)

仅作例子参考,选取了某站排行榜前十名视频的基础数据和弹幕内容制作可视化图表。

按照使用的工具共分为三个部分:数据获取部分(Python)+数据存储(MySQL)+数据可视化(Tableau),本篇笔记是前两部分的数据准备阶段。

一,数据准备阶段

  • 首先拿到排行榜页面的url(准确说是找到API,不要傻傻复制网页链接),还有请求头,同一页F12刷新
  • 使用requests,get网页详细信息:r=requests.get(url,headers=headers)
  • 然后查看json格式的网页内容:js=r.json()
  • [list]下有多个字典,是排行榜中每个视频的详细信息,按照排名顺序排列,找到所需信息的位置提取出来即可,例如视频标题和up主:
  • title=['data']['list'][0]['title']  #0表示数组list[ ]下的第一个字典
  • name=['data']['list'][0]['owner']['name']
  • 写起来很麻烦,尤其需要提取多个视频的多个数据时,先把list提出来:list=['data']['list']
  • 再使用for循环依次提取列表中前十个视频数据:for i in range(10)
  • 这一段的代码如下:

    import requests
    import json
    
    #全站热门榜单url
    top10_url = 'https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all&jsonp=jsonp'
    top10_headers = {'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'}
    #获取全站前十名榜单
    r = requests.get(top10_url, headers=top10_headers)
    js = r.json()
    list = js['data']['list']
    for i in range(10):
        title = list[i]['title']
        cid = list[i]['cid']
        tag = list[i]['tname']
        name = list[i]['owner']['name']
        view = list[i]['stat']['view']
        dm_num = list[i]['stat']['danmaku']
        reply = list[i]['stat']['reply']
        favorite = list[i]['stat']['favorite']
        coin = list[i]['stat']['coin']
        share = list[i]['stat']['share']
        like = list[i]['stat']['like']
        rank_num = i+1
    
  • 可以print()看结果

  • 接下来获取弹幕文本和发送弹幕的时间,为制作词云图和峰值图做准备

  •  某站提供了获取弹幕数据的api(当前日期起前5000条弹幕,oid就是cid,可替换别的视频)

  • 直接在浏览器访问会发现得到了一串参数和弹幕文本(xml格式)

    弹幕xml参数意义
    第一个参数是弹幕出现的时间 以秒数为单位。
    第二个参数是弹幕的模式1..3 滚动弹幕 4底端弹幕 5顶端弹幕 6.逆向弹幕 7精准定位 8高级弹幕
    第三个参数是字号, 12非常小,16特小,18小,25中,36大,45很大,64特别大
    第四个参数是字体的颜色 以HTML颜色的十位数为准
    第五个参数是Unix格式的时间戳。基准时间为 1970-1-1 08:00:00
    第六个参数是弹幕池 0普通池 1字幕池 2特殊池 【目前特殊池为高级弹幕专用】
    第七个参数是发送者的ID,用于“屏蔽此弹幕的发送者”功能
    第八个参数是弹幕在弹幕数据库中rowID 用于“历史弹幕”功能
  • 这里我们需要拿到的是弹幕文本和第一个参数(弹幕在视频中出现的时间),这次需要用到beautifulsoup
  • 弹幕文本:
    dm_url = "https://api.bilibili.com/x/v1/dm/list.so?oid=169317052"
    response = requests.get(dm_url, headers=dm_headers)
    bs = BeautifulS
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python爬虫综合作业的数据分析是基于抓取Python职位数据的结果进行分析和展示。首先,我们需要使用Python爬虫技术抓取招聘网或者职位搜索平台上的Python职位相关信息,包括职位名称、薪资、公司名称、工作地点、发布日期等。 抓取到的数据可以存储在数据库中,比如MySQL或者MongoDB等。接下来,我们可以使用数据分析和可的库,比如pandas、numpy、matplotlib等,对数据进行处理和可分析。 首先,我们可以使用pandas进行数据清洗和转换,比如去除重复数据、空数据、格式转换等。然后,我们可以使用pandas进行数据统计和分析,比如计算平均薪资、城市分布、公司薪资排名等。 接着,我们可以使用matplotlib库进行数据。可以绘制一些统计图表,比如直方图、饼图、散点图、折线图等,以展示数据的分布、趋势和关联性。比如,我们可以通过柱状图展示不同城市Python职位的数量,通过饼图展示不同薪资区间的职位比例等。 此外,我们还可以使用其他可工具进行更加复杂和多样数据展示。比如使用Tableau、Power BI等工具,可以生成更加交互式和美观的数据报表和仪表盘,让数据更加直观和易于理解。 最后,我们可以对可的结果进行解读和分析,从中获取一些有用并且具有洞察力的信息。比如,我们可以发现哪些城市的Python职位需求量较高,哪些薪资区间的职位更为普遍等。 综上所述,通过Python爬虫技术抓取Python职位数据,并使用数据分析和可工具对其进行分析和展示,可以帮助我们更好地了解Python职位市场的情况,并从中获取有价值的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值