Loading...
墨滴

Wyl

2021/04/24  阅读:40  主题:兰青

爬虫 | 年轻人如何看待小米造车

前言

2021年3月30日,小米集团在港交所发布公告,小米董事会正式批准造车决议——小米智能电动汽车业务立项。当晚,雷军在新品发布会上宣布小米将正式进军智能电动车行业,并且称这是自己“最后一次重大创业”,引发社会各界的讨论热潮

小米成立以来践行的是粉丝营销,通过提升产品性价比以及快速响应用户的个性化需求,收获大批年轻人“米粉”。这次雷军进军智能电动车行业,年轻网友们如何看待?是期待还是嘲讽?

这次爬取B站最热门的雷军演讲视频,《泪目!雷军超燃演讲,称造车是人生最后一次创业! | 一手》的弹幕,从侧面了解年轻人对小米造车的看法与态度

基本思路

第一步:查看历史弹幕

通过展开弹幕列表-查看历史弹幕-点击历史日期,可以发现,单个视频每日弹幕最大存储数量为3000条

第二步,查看弹幕存储url

打开浏览器network-XHR选项,每次点击一个历史日期的弹幕,都会新出现一个带有日期的url,那么这些新出现的url应该就是用来存储视频弹幕的

具体来看

https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=317462431&date=2021-04-01

https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=317462431&date=2021-04-02

固定部分为https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1,oid参数实际上B站是每个视频编码,相同视频不同历史弹幕中保持不变,唯一变化的就是dta参数,即日期参数

不过,通过浏览器预览这些url下的数据,居然是乱码的,原因暂不明~

我们先试试python是否能识别这些乱码信息

第三步,获取历史弹幕url

经过上述分析,可以利用如下代码获取历史日期弹幕的url列表

def get_url(oid,start,end):
    '''
    获取指定日期的弹幕
    oid:视频oid
    start,end:起止日期
    '''

    url_list = []
    
    date_list = [i for i in pd.date_range(start,end).strftime('%Y-%m-%d')]
    
    for date in date_list:
        
        url = f"https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid={oid}&date={date}"
        url_list.append(url)
        
    return url_list

第四步,循环请求url列表

当我们利用requests请求弹幕url返回的html数据同样呈现乱码,但是中文弹幕内容可以区分得出来,那么我们就可以利用正则表达式把html的中文字符弹幕给提取出来

请求返回结果
请求返回结果

核心代码如下

# 解决方法:利用正则表达式把中文提取出来
resmatch = re.findall(':(.*?)@',html, re.S)
danmu_list = []
for k in range(len(resmatch)):
 word = re.findall('[\u4e00-\u9fa5]|\u3002|\uff1f|\uff01|\uff0c',resmatch[k]) # 匹配中文、句号、问号、感叹号以及逗号
     danmu = ''.join(w for w in word)
     danmu_list.append(danmu)

主程序实现

if __name__ == "__main__":
    os.chdir("E:\\桌面")
    start = "3/31/2021"
    end = "3/31/2021"
    oid = "317462431"
    url_list = get_url(oid,start,end)
    sumdanmu = get_danmu(url_list,start,end)
    print("运行完成")

运行界面结果

运行界面结果
运行界面结果

保存文件结果

保存文件结果
保存文件结果

至此,以爬取雷军演讲视频3月31日至4月24日的全部历史弹幕,共计获得74046条弹幕

下面进行简单的文本可视化分析,看看年轻人对小米造车的看法与态度

文本可视化

首先,绘制弹幕频数TOP15统计图

结果显示,弹幕TOP15分别是“干翻特斯拉”、“雷总加油”、“梦开始的地方”、“泪目”、“雷总牛逼”、“交个朋友”、“亿点点”、“卧槽”、“好”、“比博然”、“钞能力”、“小米加油”、“干翻哥斯拉”、“我愿意”、“报销”等,接近10%的弹幕为“干翻特斯拉”,虽然这是一句情绪性语句,但是也从侧面表达了年轻人对小米造车的高度期待。“雷总加油”、“梦开始的地方”、“泪目”、“雷总牛逼”等弹幕说明用户对雷军的支持和敬佩,可以看得出来,和其他同时期的明星CEO相比,雷军在年轻人心中的的形象和声誉还是比较高的,被部分网友尊称为真正的良心企业家。忠诚用户甚至表示为了小米智能电动汽车的发布“好”、“我愿意”、“等你”、“交个朋友”等,可见,未来小米智能电动汽车的市场空间可能还是比较大的

弹幕TOP15
弹幕TOP15

其次,根据弹幕内容绘制词云图

直观来看,“干翻特斯拉”是网友的普遍期待。此外,一个有趣的现象是,网友调侃式地表示希望雷军可以进军房地产行业,表明现阶段中国高额的房价已经让年轻人感到无可奈何的地步,也从侧面说明小米的商业模式可以使得相关行业的产品价格显著降低,让利消费者。不少年轻人表示,希望自己的第一辆智能电动汽车由小米生产,说明小米新能源电动汽车已经存在潜在的市场空间

弹幕词云
弹幕词云

结论

仅目前来看,年轻人对小米造车是高度期待的。当然,小米造车最终收效如何还是要看后续智能电动车的行业变革以及其推出的电动车新品能否满足消费者预期

下回见~

项目完整代码可在公众号后台回复关键词“小米造车B站弹幕爬取”获取

知乎与公号:乌龙PySta(ID:wylcfy2014)
不定期推送:Python+Stata | 文本分析+机器学习 | 财务+会计

Wyl

2021/04/24  阅读:40  主题:兰青

作者介绍

Wyl

厦门大学