35

用Python解读“女神大会”,直男心目中的女神是这样的~

 5 years ago
source link: https://blog.csdn.net/weixin_42232219/article/details/86522018?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

J7rEbm3.jpg!web

作者 | 徐麟,目前就职于互联网公司数据部,哥大统计数据狗,从事数据挖掘&分析工作,喜欢用R&Python玩一些不一样的数据

编辑 | Emily

前言

作为一位喜爱足球的球迷,“懂球帝”一定会是款必不可少的 app,即使是只有 16G 的空间,也从未将其卸载。然而我们今天聊的与足球无关,而是去聊懂球帝上的“女神大会”专栏,作为一个大型“钢铁直男”聚集地,“懂球帝”上对各位女神的评分,对广大“钢铁直男”群体也具有一定代表性。

数据来源

目前女神大会更新至了第 90 期,总共出场了 90 位女神,界面如下:

vyauyqE.png!web

我们通过 fiddler 获取该界面中女神的照片地址以及每一篇文章的 id 编号,用于之后的爬取和可视化,代码如下:

 1import json
 2import requests
 3from bs4 import BeautifulSoup
 4import pandas as pd
 5import re
 6import os
 7os.chdir('D:/爬虫/女神')
 8
 9id_list = []
10title_list = []
11pic_list = []
12date_list=[]
13
14for i in range(1,6):
15   url= 'http://api.dongqiudi.com/search?keywords=%E5%A5%B3%E7%A5%9E%E5%A4%A7%E4%BC%9A&type=all&page='+str(i) 
16   html = requests.get(url=url).content
17   news = json.loads(html.decode('utf-8'))['news']
18   this_id = [k['id'] for k in news]
19   this_pic = [k['thumb'] for k in news]
20   this_title = [k['title'] for k in news]
21   this_date = [k['pubdate'] for k in news]
22   this_title=[BeautifulSoup(k,"html.parser").text for k in this_title]
23   id_list = id_list+this_id
24   title_list = title_list+this_title
25   pic_list = pic_list+this_pic
26   date_list = date_list+this_date

另一方面,每位女神的评分都在下一期当中,我们需要爬取文章内容进行获取:

uqMbQjV.png!web

爬取代码如下:

 1prev_title_list = []
 2score_list=[]
 3count_list=[]
 4for id in id_list:
 5   url = 'http://www.dongqiudi.com/archive/{k}.html'.format(k=id)    
 6   header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:54.0) Gecko/20100101 Firefox/54.0',
 7   'Connection': 'keep-alive'}
 8   cookies ='v=3; iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; webp=true; ci=1%2C%E5%8C%97%E4%BA%AC; __guid=26581345.3954606544145667000.1530879049181.8303; _lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8; _lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; monitor_count=1; _lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5; __mta=189118996.1530879050545.1530936763555.1530937843742.18'
 9   cookie = {}
10   for line in cookies.split(';'):
11       name, value = cookies.strip().split('=', 1)
12       cookie[name] = value    
13   html = requests.get(url,cookies=cookie, headers=header).content
14   try:
15       content = BeautifulSoup(html.decode('utf-8'),"html.parser")
16       score = content.find('span',attrs={'style':"color:#ff0000"}).text
17       prev_title = content.find('a',attrs={"target": "_self"}).text
18       prev_title_list.append(prev_title)
19       score_list.append(score)
20       sentence = content.text.split(',')
21       count=[k for k in sentence if re.search('截至目前',str(k))][0]
22       count_list.append(count)
23   except:
24       continue

整体对比

我们此次利用R语言中的 ggimage 包,将获取到的女神图片加入到最终的图表中,提高可视化效果,首先看一下整体评分的 TOP15 名单:

RbYnMzf.png!web

朱茵、林志玲、高圆圆位居榜单前三位,不知道这份榜单是否符合你心目中的女神标准,而这三位也恰好成为了目前出场的 90 位女星当中香港、台湾、大陆的最高分。值得一提的是,懂球帝小编对于活跃于 90 年代的香港女星情有独钟,从中选取了非常多的女神,而这些女神的评分也都名列前茅。

下面看一下目前出场的 90 位女神中,排名相对靠后的几位:

F7J732A.png!web

很多朋友会觉得这份榜单对于年轻女神有些苛刻,可能这也代表了广大网友对于各位年轻女神的美好期许,体现了她们未来的无限可能。

区域对比

我们分区域看一下目前各个区域排名前十的名单:

2uayMjR.png!web

Abuai2b.png!web

UfeqQny.png!web

AN3yEba.png!web

(以上图片均来自于“懂球帝”APP)

看完了各个区域 TOP10 的名单之后,我们进行一下区域的对比: 

mi2mMbU.png!web

我们将小提琴图与盒形图相结合,进行区域的对比,可以看到大陆女星的评分相对偏低,一方面是由于部分女神的评分较低,拉低了整体的分值,另一方面也是由于目前出场的大陆女星年龄普遍偏小,而这一点也会在下一部分得到证实

年份对比

我们看一下各个年份出生的女星总体评分情况对比,其中“60后”选项也包含了 60 前的女神,“90后”选项也包含了 00 后的女神

vaM7vaN.png!web

可以看到 60 后、70 后的女神们平均分数要高于 80 后,而 80 后显著高于 90 后,一方面说明了大家对老牌女神们的认可,另一方面也是体现了大家对新生女神们的无限期许。

我们下面将区域与年份综合起来进行对比:

Yv67Zfa.png!web

可以看到参与评分的大陆女神普遍比较年轻,这也一定程度解释了此前提到的大陆女神整体评分偏低的原因。而港台女神普遍集中在 60、70 后,这些女神们活跃的 90 年代也是香港电影、电视的黄金时期,我们也期待着香港影视未来的复苏。

后记

懂球帝目前的女神大会做到了90期,并没有十分完整地囊括广大女神,比如“四旦双冰”就都没有出现,使得这次的数据并不能完全地表述广大“钢铁直男”心中的女神标准,未来随着期数的增加,相信会有更加完善的分析

最后,我突发奇想,想要看下在一周中不同时间出场的女神评分是否会有区别:

3QfeAvr.png!web

这个结果有点意外呢!在一周快要结束的两天,即周四和周五的评分反而比周一到周三还要低,目前还不能确定是否有数量不足导致的偏差,后续我们还将继续关注,也希望这次的分析能让大家感受到 Python 的魅力,下次可以自己实践一波~

(本文为投稿文章,转载请联系原作者。)

福利

公众号后台回复: 2018Python ,获取 2018Python开源项目Top100 整理资料! 或扫码添加小助手微信,回复: 1 ,入群 获取。

NN7jyqf.jpg!web

推荐阅读:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK