大数跨境
0
0

火过李子柒,碾压手工耿,Python揭秘B站Top阿婆主!

火过李子柒,碾压手工耿,Python揭秘B站Top阿婆主! CareerTu职图
2020-01-13
1
导读:神操作:Python大神直接扒出了B站“惊为天人”的阿婆主





明天开讲





导师来自:Carat

Data大神带你“打”入2020美国数据科学领先企业

美东时间 2020年1月13日9PM开讲


你将获得:

什么样的简历才能顺利拿到面试官的橄榄枝?

如何将SQL, Tableau, Python 等运用到企业项目中?

怎样规划Data Science求职时间线

Data岗求职过程中,怎样确定适合自己的行业和工作内容


扫码回复【DS VIP 1】报名

课程价格$150,限时学生免费

作者:徐麟,某互联网公司数据分析师,
个人公众号数据森麟(id:shujusenlin)




No.1

前言



近期B站的跨年晚会因其独特的创意席卷各大视频网站,给公司带来了极大的正面影响,股价也同时大涨,想必大家都在后悔没有早点买B站的股票:


然而今天我们要讨论的不是B站的跨年晚会,而是B站的核心资源:“惊为天人”的阿婆主们,文章的灵感来自于知乎热榜上的一个问题:


No.2

数据获取



上面的问题一共获得了859个回答,本文的数据也正来源于此,由于很多回答都会将带有阿婆主ID的链接在回答中体现,如下图所示:


我们可以将问题中出现的阿婆主空间id进行了爬取,但考虑到并不是所有回答都会带有这样的ID,于是将一些加粗的字体进行了提取,从中获得一些阿婆主的名称,作为数据的补充:


上面的这个回答就是一个典型的案例,其中提到了之前非常火的获得库克生日祝福的小学生,提取数据的一些代码如下:

  
# 开始爬取数据
driver = webdriver.Chrome()
driver.maximize_window()
url = 'https://www.zhihu.com/question/291506148'
js='window.open("'+url+'")'
driver.execute_script(js)
for i in range(1000):
     time.sleep(1)
     js
="var q=document.documentElement.scrollTop=10000000"  
     driver.execute_script(js)
     print(i)

# 整理数据
all_html = [k.get_property('innerHTML'for k in driver.find_elements_by_class_name('AnswerItem')]
all_text = ''.join(all_html)
pat = '/space.bilibili.com/\d+'
spaces = list(set([k for k in re.findall(pat,all_text)]))

现在获取到了要这些“惊为天人”的阿婆主们的ID,下一步要做的就是需要爬取他们B站的个人空间,获得更多详细的信息:


上面就是B站知名科学家手工耿的个人空间,从中我们可以获取手工耿的粉丝数,视频主要类型(一直以为应该是科技,没想到居然是生活,B站节操可以的)以及所有视频平均的播放量、弹幕数、评论数,作为后续进行排名的依据,部分代码如下:

  
upstat = pd.DataFrame(columns=['name','fans','face','main_type','total_video',
                               'total_play''total_comment'])
for i in range(len(spaces)):
    try:
        time.sleep(1)
        space_id = str(spaces[i].replace('/space.bilibili.com/',''))
        url= 'https://api.bilibili.com/x/web-interface/card?mid={}&jsonp=jsonp&article=true'.format(space_id)
        html = requests.get(url=url, cookies=cookie, headers=header).content
        data = json.loads(html.decode('utf-8'))['data']
        this_name = data['card']['name']
        this_fans = data['card']['fans']
        this_face = data['card']['face']
        this_video = int(data['archive_count'])
        total_page = int((this_video-1)/30)+1
        video_list=[]
        for j in range(total_page):
            url = 'https://api.bilibili.com/x/space/arc/search?mid={}&ps=30&tid=0&pn={}&keyword=&order=click&jsonp=jsonp'.format(space_id,str(j+1))
            html = requests.get(url=url, cookies=cookie, headers=header).content
            data = json.loads(html.decode('utf-8'))
            if j == 0 :
                 type_list = data['data']['list']['tlist']
            this_list = data['data']['list']['vlist']
            video_list = video_list + [ this_list [kfor k in range(len(this_list))]
        type_list = list(type_list.values())
        type_list = {type_list[k]['name']:int(type_list[k]['count']) for k in range(len(type_list))}
        this_type = max(type_list,key=type_list.get)
        this_play = sum([video_list[k]['play'for k in range(len(video_list)) if video_list[k]['play'] != '--'])
        this_comment = sum([video_list[k]['comment'for k in range(len(video_list)) if video_list[k]['comment'] != '--'])
        upstat = upstat.append({'name':this_name,
                               'fans':this_fans,
                               'face':this_face,
                               'main_type':this_type,
                               'total_video':this_video,
                               'total_play':this_play,
                               'total_comment':this_comment},
                              ignore_index=True)
        print('success:'+str(i))
    except:
        print('fail:'+str(j))
        continue

最终我们就获得了B站200多位“惊为天人”的阿婆主们的信息,概览数据如下:


No.3

总体概览



获得了这些数据之后,我们首先看一下这些“惊为天人”阿婆主们发布的视频主要类型分布:


由于B站生活的分类中包罗万象,手工耿和李子柒都被划归到了生活类,想想都玄幻,因此这一类型的视频是分组多的,另外科技和数码类的占比也是非常多的,印证了B站是个优秀的学习网站的结论。

除此之外的视频可统称为娱乐类,包括了游戏、影视这些,之后会将视频类型按照科技、生活、娱乐进行大的划分,寻找各个类别最为“惊为天人”的阿婆主。

在开始进行正式的排名前,首先用Python将这些阿婆主的头像进行拼接,获得下面的图片,看看一眼望去有多少是你非常熟悉的阿婆主:


这部分代码如下:

  
i = 0 
for i in range(upstat.shape[0]):
    loc = 'D:/爬虫/惊为天人/'+upstat['name'][i]+'.jpg'
 # request.urlretrieve(upstat['face'][i],loc)
    img = mpimg.imread(loc)[:,:,0:3]
    img = cv2.resize(img, (500,500),interpolation=cv2.INTER_CUBIC)
    if i % 20 == 0:
        row_img=img
    elif i == 19:
        row_img=np.hstack((row_img,img))
        all_img = row_img
    elif i % 20 == 19:
        row_img=np.hstack((row_img,img))
        all_img = np.vstack((all_img,row_img))
    else:
        row_img=np.hstack((row_img,img))
    i = i+1    
plt.axis('off')
plt.margins(0,0)
plt.imshow(all_img)
plt.savefig('头像.png',dpi=1000)

No.4

综合排名



下面要做的事情就比较大胆,要斗胆为这些阿婆主们进行排名,综合考虑他们的粉丝数,视频平均弹幕数、播放量、评论数,获得一个综合的指数,特此声明:本排名仅供娱乐,如要深究,AWSL

首先看一下进入TOP10的阿婆主们:


小编近期刚刚被安利的巫师财经榜上有名,建议大家去看一下,真的是将复杂的金融知识说得很接地气,华农兄弟和敬汉卿两大知名阿婆主也榜上有名,下面再来看下TOP11-20的榜单:


徐大Sao,李子柒和手工耿在榜单中同时出现,未来有机会,希望有人能策划一次他们三人之间的合作,流程都想好了,手工耿为李子柒提供后现代的工具,李子柒利用手工耿的神器制作世界上最辣的辣椒,之后由徐大Sao一口吃掉,手工耿最后再用自己的脑瓜崩为徐大Sao缓解辣椒带来的不适感。

No.5

分类排名



进行完综合排名之后,下面将所有阿婆主按照科技、生活、娱乐进行综合排名,分别获得各个分类的TOP10:




有了分类排名后,大家就可以按照自己的喜好按需索取,相信看完之后,脑洞会变大,一段时间后可以去尝试自己在B站发布视频,成为B站粉丝达到两位数的知名(才怪)阿婆主。



“分析” [ Analytics ] 这个词在很多情况下能够被大家正确地解读,但也有很多人对于具体和“分析” [Analytics] 有关的职业定义和分工存在很多的疑惑,甚至有些盲点。

在如今的市场营销领域中,营销广告日益趋向数据导向, 很多公司都会对自己的网站进行分析,招聘数据分析的人才,也几乎每天都会和数据打交道。大多数公司能够做到对自己的网站情况非常了解,可是却很难追踪更广泛的用户行为。这也是为什么近几年来网站分析进一步地延伸与发展到了更为广泛的营销数据分析。

因此如果你想正确地打开数据分析[Data Anlytics]的大门,理解它是什么,知道它的重要性就显得尤为重要了。

1月13号,我们邀请了来自全球排名第一Media Network公司CARAT的导师,带你“打”入2020美国数据科学领先企业!


职图飞跃计划正在招生

超含金量的远程实习等你加入!


DIgital Marketing方向四大阶段 
(下滑查看)

UIUX Design方向四大阶段 
(下滑查看)

Business Intelligence方向四大阶段 
(下滑查看)

飞跃计划报名前需经过背景测评,
以了解课程是否合适你
扫码回复 【飞跃 1】
预约免费背景测评!
 


【声明】内容源于网络
0
0
CareerTu职图
CareerTu (www.careertu.com) 是互联网新职业在线技能学习平台,专注于数字营销 数据分析 商业分析 产品设计。Unlock Your Potential 激发潜能,迭代自我 突破技能界限,实现职场飞跃
内容 6729
粉丝 0
CareerTu职图 CareerTu (www.careertu.com) 是互联网新职业在线技能学习平台,专注于数字营销 数据分析 商业分析 产品设计。Unlock Your Potential 激发潜能,迭代自我 突破技能界限,实现职场飞跃
总阅读131
粉丝0
内容6.7k