硬核看球,数据分析足坛转会窗口各队表现
- 2019 年 10 月 8 日
- 筆記
本文转载自1024开发者社区
前言
各大联赛在7月初都打开了转会窗口,各路豪强纷纷出巨资对阵容进行补强,比如格列兹曼加盟巴塞罗那(文章图片源于懂球帝):

各家经纪人又到了收获的季节,媒体也是趁此机会大量炮制新闻,极其热闹,涌现出一批“弄潮儿”。

本文通过爬取“懂球帝”一个月来转会新闻,为您从数据角度分析转会市场波谲云诡的变化。
本文数据来源懂球帝,只用于学习交流,不用于商业获利,如对任何公司,个人造成不利影响,请告知删除。

一、数据获取
在懂球帝APP中搜索“转会”关键字,可以获取转会相关的新闻列表,如图:

通过Fiddler 对APP数据进行抓取,获得新闻列表页的URL:

具体Fiddler 配置方法见:
https://blog.csdn.net/c406495762/article/details/76850843
通过URL爬取新闻列表中新闻的id,title等信息,代码如下:
for i in range(1, 91): # 每一页20篇 url= '******************************* ' +str(i ) +'********' html = requests.get(url=url ,headers=header).content news = json.loads(html.decode('utf-8'))['news'] this_id = [k['id'] for k in news] id_list = id_list + this_id time.sleep(2) flag += 1 print(flag) pd_data = pd.DataFrame(id_list ,columns=['id_news']) pd_data.to_excel('id_news.xls', na_rep=False)
根据得到的新闻id列表,对每一个新闻具体信息进行获取,并存入MongoDB数据库中,代码如下:
def main(): id_list = pd.read_excel('id_news.xls', usecols=['id_news']) for i in range(1277,len(id_list)): url = '**********************'+str(id_list.iloc[i,0]) tags = [] News_info = { 'article_id': None, 'title': None, 'visit_total': None, 'writer': None, 'time': None, 'source': None, 'tag': None, } 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' cookie = {} for line in cookies.split(';'): name, value = cookies.strip().split('=', 1) cookie[name] = value try: html = requests.get(url=url,cookies=cookie, headers=header).content except: print('请求失败', id_list.iloc[i,0]) continue n = 1+ random.uniform(0, 2) time.sleep(n) try: news_info = json.loads(html.decode('utf-8'))['data'] News_info['article_id'] = news_info['article_id'] News_info['title'] = news_info['title'] News_info['visit_total'] = news_info['visit_total'] News_info['writer'] = news_info['writer'] News_info['time'] = news_info['time'] News_info['source'] = news_info['source'] infos = news_info['infos']['channels'][:] for info in infos: infos_tag = info['tag'] tags.append(infos_tag) News_info['tag'] = tags save_to_mongo(News_info,MONGO_TABLE1) except: continue
一个月共获取新闻信息1742条:

当然球迷的评论更是懂球帝好看的地方,所以讲每篇新闻热评也爬取下来,看看谁是这一个月热评王者。代码原理相同,此处不具体贴出。
主要获取热评文本,点赞数:

下面开始我们的数据大餐。

二、数据分析
1、阅读量最高top15
转会新闻非常多,其中最火,关注度最高的是哪条消息呢?
通过对阅读量属性排序,R语言ggplot进行可视化(感谢数据森麟:麟哥的指导),效果如下:

最受大家关注的果然还是德利赫特的归属问题。
2、哪个球员是被cue最多的?
提到转转会,就不得不说今年转会市场四小龙:
内马尔、德利赫特、格列兹曼、博格巴
下面看看他们到底在转会新闻中的关注度。

开始的结果出乎我的意料,贝尔通过月末和江苏队的转会传闻,末段超车,登上榜首:

所有球员的云图:

3、哪个球队出现频次最多?有你的主队吗?
直接上图:

没错,结果在我心中毫无波澜,第一名正是曼抬,不对,是曼联,这里面半壁江山是博格巴和马奎尔贡献的,此外前几名还是被几个江湖老大哥占据,江苏苏宁能上榜也让人欣喜。
所有球队的云图:

4、每天转会新闻发布量
足球转会挑时间吗?请看答案:

从每日转会新闻量来说,除了周末少一些外,其余时间没有较多规律。
5、哪个媒体发文最多?
球迷圈里一直流传着这样一张形容媒体可信度的图

下面来看懂球帝新闻来源的分布:

由此看出,我懂消息来源还是比较丰富,自己也拥有大量的原创新闻。
6、新闻标题词云
对新闻标题进行分词和词频统计,通过jieba分词时要添加停用词和自定义词:
jieba.load_userdict('dict.txt') jieba.analyse.set_stop_words('stop_words.txt')
生成词云如下:

对于标题来说,频次最高的就是转会、转会费、官方等等。本图分词做的还不够细致,还有少部分没分好的词。
7、评论数据分析
懂球帝文章的评论区是一篇新闻的精华部分,下面就看一下最热的评论有哪些(由于评论较长,所以以文本的形式展示):
/TOP1/
题目:齐达内:球队正加紧处理贝尔的转会,他尽快离队对双方都好
评论:
就算贝尔离队了
大家别忘了2014年欧冠决赛长途奔袭的反超头球
别忘了2014国王杯的外道超车
别忘了2018年欧冠决赛的绝世倒钩
别忘了他为皇马付出的所有
感谢你!加雷斯
点赞数:12971
/TOP2/
题目:官方:德利赫特加盟尤文,转会费7500万欧+1050万额外费用
评论:
《德利赫特传》
目录:第一章-梦想的开始(阿贾克斯篇)
第二章-初露锋芒
第三章-逐梦之路(巴萨初篇)
第四章-梦想还是现实?(巴黎篇)
第五章-传说的神抬(曼联篇)
第六章-眷恋与不舍(自宣可能留队篇)
第七章-挖掘机哪家强(拜仁篇)
第八章-白色之梦(皇马篇)
第九章-突然杀出?老妇人的奋起直追(尤文篇)
第十章-决战拉胖之巅(巴萨尤文篇)
第十一章-神抬再次出山?(曼联最后的挣扎)
第十二章-罗老头的真面目(懂得都懂)
第十三章-老妇人的最终抉择
第十四章-梦想终不敌现实(结束)
点赞数:12644
/TOP3/
题目:恩东贝莱加盟热刺,转会费最高7000万欧,热刺队史标王
评论:从此伦敦只有一个穷逼[狗头]
点赞数:8453
在这里不多列举了,对于第三名,为什么就这几个字就能排名如此高,答案不言自明:

所有评论的词云:

没错,就是狗头,大家最爱的狗头!