前言:
目前你们对“jquery连连看的算法”可能比较看重,朋友们都想要学习一些“jquery连连看的算法”的相关内容。那么小编在网摘上收集了一些有关“jquery连连看的算法””的相关知识,希望大家能喜欢,大家快快来学习一下吧!前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:追剧上头的C君 CDA数据分析师
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
《我是余欢水》大家都在怎么看?
豆瓣评分:
目前在豆瓣上,《我是余欢水》为7.5分。共有11万的人给出了评分,其中百分之30.8%给出了5星,40%的给出了4星,是非常不错的成绩。
知乎问答
我们分析整理了知乎上关于《我是余欢水》的问答,可以看到:
我们把回答的角度主要分为故事、角色和剧作三个角度。
关于剧作
讨论的角度主要是“网络短剧”的新形式十分有新鲜感,“结构紧凑”。同时还是那熟悉的“正午配方”,许多正午阳光其他剧的演员出现,总让有种“熟脸连连看的”的感觉,很是有趣。
关于故事
很多人表示,《我是余欢水》显然讲的是“一个社畜的故事”,余欢水在职场的力不从心与无奈让人同情。剧中把余欢水遭遇车祸、离婚、误诊的窝囊人生悲剧用“喜剧效果”来展现。
关于角色
男主余欢水、他的老婆甘虹、以及办公室三人组赵觉民、魏总等人都是讨论的焦点。
Python分析15万弹幕 看看大家都在说些什么
那么观众们对《余欢水》和剧中主要人物都是怎么看的呢?
我们爬取了在腾讯视频上本剧的弹幕,共计150252 条弹幕,每集平均就有 12521 条。
先看到主要结论:
大家有多爱发弹幕
再细看到每人弹幕发送的数量:
根据数据,在发送弹幕的人群中,63.7%的人发了一条弹幕,16.9%发了两条,少数比较话痨的人发了10条以上的弹幕,占比3.63%。
哪些弹幕点赞最多?
点赞最高的弹幕也特别有意思,比如:
余欢水——国家一级退堂鼓表演艺术家
记住!这是一瓶改变命运的假酒
你摔倒了,我们很同情马路
对不起,但是真的好想笑
真是让人感叹,这届网友实在是太有才了。余欢水都这么惨了,你们还嘲笑他,真是太坏了。
弹幕里大家都在讨论谁?
根据分析我们可以看到,讨论最多的当然是我们的男主了,有3974条弹幕都是关于余欢水的。
讨论最多的第二名是谁?你们绝对想不到,居然是公司三人组,余欢水的上司之一梁安妮,收获了2158条弹幕。比余欢水老婆甘虹的弹幕高出近一倍。
人物弹幕画像:
我们再根据主要人物的弹幕,整理出各个人物的画像,首先是余欢水,大家提到最多的就是演员郭京飞的演技,吊打一众小鲜肉,妥妥的用实力说话。
余欢水
余欢水也被观众戏称为“好惨一男的”,各种“窝囊”、“怂”、“惨”“令人心疼”,从中也看到了人到中年的无奈与现实。除此之外大家也疯狂串戏到了《都挺好》里的“苏明成”,感觉男主这么惨,看来编剧是想让余欢水给苏明成还债呀。
甘虹
我们再看到余欢水老婆甘虹的画像,大家提到最多的关键词是“大嫂”,要知道在都挺好里,高露演的是郭京飞的大嫂,这一转眼两人从叔嫂演成了夫妻。
梁安妮
看到收获弹幕第二高的角色——梁安妮。观众们都沉迷于她的演技,“性感”、“撩人”“好看”等都是关键词。认为这个角色是妥妥的魅力担当,演员高叶把这个人物的气质拿捏的死死的,果然漂亮小姐姐大家都喜欢。
赵觉民
再聊聊正午的金牌配角岳旸。听名字可能不太熟悉,但看脸就知道了,正午的剧里哪哪都有他。《我是余欢水》里,他演的是的领导赵觉明。他在《鬼吹灯之精绝古城》里演的是“大金牙”;到了《欢乐颂》,他演的是樊胜美的哥哥"樊胜英"。在弹幕里这两个角色名也常常被大家提到。
下面看到具体分析过程
此次分析我们获取腾讯视频的弹幕并进行数据数据,数据获取部分的具体思路如下:
分析网站URL规律,获取弹幕数据URL请求接口和请求方式分析弹幕URL规律分析,获取翻页规律数据获取
分析网站和数据定位
打开腾讯视频《我是余欢水》视频随便选取一集,观察我们需要抓取的弹幕,可以明显看出来弹幕不是在视频上的而是浮动在视频上面,而且弹幕在视频播放之后才滚动加载,所以我们大概能得出弹幕是JS异步加载的。
我们使用谷歌浏览器,右键审查元素,观察Network的请求,播放开始后出现了大量请求,我们在js选项下发现了一个比较特殊的请求 “danmu” ,打开这个请求后发现这就是我们要的弹幕数据。
切换到Headers下获取到弹幕数据的URL地址:
×tamp=195&_=1587109875933
弹幕URL规律分析首先,我们尝试删掉目标网址中不影响最终结果的部分参数,从而精简出网址如下:
×tamp=15
将第二,三个请求拿出来精简:
×tamp=45×tamp=75
对比很容易找到规律,从第一页到第二页,timestamp值从15变到了45,第二页到第三页从45到75,target_id不变。
这个规律我们可以大胆猜测这个 timestamp 值是控制页数的,并且起始值是15每30秒更新一次。
一集视频弹幕有多少页呢?如何获取最后一个timestamp的值。
有一个小技巧,我们在构建URL地址的时候指定一个足够大的结尾步长,然后当获取不到内容时终止循环即可。
不同集之前我们需要寻找target_id的代码规律,此处暂不做赘述。
具体代码如下:
# 导入所需库import requestsimport jsonimport timeimport parselimport pandas as pddef get_danmu_one_page(url_dm): """ :param url_dm: 视频弹幕URL地址 :return: 一页的弹幕数据 """ # 添加headers headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', 'cookie': '你的电脑登录后的cookie信息', 'referer': ';, } # 发起请求 try: r = requests.get(url_dm, headers=headers, timeout=3) except Exception as e: time.sleep(3) r = requests.get(url_dm, headers=headers, timeout=3) # 解析网页 data = r.json()['comments'] # 获取评论ID comment_id = [i['commentid'] for i in data] # 获取用户名 oper_name = [i['opername'] for i in data] # 获取会员等级 vip_degree = [i['uservip_degree'] for i in data] # 获取评论内容 content = [i['content'] for i in data] # 获取评论时间点 time_point = [i['timepoint'] for i in data] # 获取评论点赞 up_count = [i['upcount'] for i in data] # 存储数据 df_one = pd.DataFrame({ 'comment_id': comment_id, 'oper_name': oper_name, 'vip_degree': vip_degree, 'content': content, 'time_point': time_point, 'up_count': up_count }) return df_onedef get_danmu_all_page(target_id, vid): """ :param target_id: target_id :param vid: vid :return: 所有页弹幕 """ df_all = pd.DataFrame() # 记录步数 step = 1 for time_stamp in range(15, 100000, 30): # 右侧设置一个足够大的数 try: # 异常处理 # 构建URL url_dm = '{}&vid={}×tamp={}'.format(target_id, vid, time_stamp) # 调用函数 df = get_danmu_one_page(url_dm) # 终止条件 if df.shape[0] == 0: break else: df_all = df_all.append(df, ignore_index=True) # 打印进度 print('我正在获取第{}页的信息'.format(step)) step += 1 # 休眠一秒 time.sleep(1) except Exception as e: continue return df_all
获取到的数据如下所示,共计爬取了 150252 条弹幕(每集平均12521条,每30s的间隔爬取),来看看弹幕下的余欢水。
主要包含了以下信息:集数、评论ID、用户名、vip等级、评论内容、评论时间点和评论点赞。
标签: #jquery连连看的算法