数据分析西甲联赛,积分榜动态显示

文章首发于公众号:1024程序开发者社区

作为一名资深球迷和二把刀程序员,一直想将数据分析用于足球比赛分析。年前有段时间,30年GDP动态变化图着实让人看着心潮澎湃。近期,五大联赛都进入了争冠的冲刺期,因此以西甲为例,看一看动态积分排名和数据分析在足球联赛中的应用。
按照惯例,先上图(完整视频见公众号):
在这里插入图片描述文章主要分三个部分:

  1. 数据获取;
  2. 动态显示程序的使用;
  3. 其他西甲数据分析。

/1/数据获取

网络上实时的联赛积分数据很容易找到,但是每一轮的历史数据记录极少,千辛万苦,找到“一比分”网站,链接:https://data.13322.com/league-31/scjf.html。网页截图为:
在这里插入图片描述
对网页进行分析,必须通过点击选择“轮次”才能获取该轮积分数据,这就使传统的爬虫方法失效了。
在这里插入图片描述
因此,调用“selenium”模拟浏览器进行登录。

browser = webdriver.Chrome()
wait = WebDriverWait(browser ,10)

通过CSS_SELECTOR定位触发轮次数据变化的位置,如图:
在这里插入图片描述
定义触发语句,并获取当页数据:

page = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,lst[i])))
page.click()
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#Standings')))
html1 = browser.page_source

通过BeautifulSoup对数据进行定位和提取:

for item in soup.find(id='Standings').find_all('tr'):
   result_cache = []
   for td in item.find_all('td'):
      result_cache.append(td.get_text().replace("‘", "").replace("’", ""))
   result_cache[15] = i+1
   print(result_cache)

最后调用xlwt,将结果数据写入XLS文件中:

row = len(result)
col = len(result[0])
workbook = xlwt.Workbook('ascii')
worksheet = workbook.add_sheet('my_worksheet1')
for x in range(row):
   for y in range(col):
      worksheet.write(x, y, result[x][y])
workbook.save(r'西甲.xls')

/2/动态数据显示

本文所使用动态排名数据可视化项目是jannchie建立的开源项目,基于D3.js。能够将历史数据排名转化为动态柱状图图表。网址为:
https://github.com/Jannchie/Historical-ranking-data-visualization-based-on-d3.js
在这里插入图片描述
使用方法,只需打开src目录下的bargraph.html。然后点击页面中间的选择文件按钮,接着选择csv格式的数据文件,便可以看到可视化的结果。
example有四个参数,name,type,value,date。根据爬取数据进行整理即可:
在这里插入图片描述
通过定义config.js和visual.js对显示参数进行调整。如添加图标路径:
在这里插入图片描述
最终结果如开头所示。

/3/其他数据分析
除做出积分动态变化图外,还对其他数据进行分析。
1.联赛胜率排行top10
在这里插入图片描述
巴萨不说了,皇马和马竞的差别就在于防守。
2.联赛进球排行top10
在这里插入图片描述
3.联赛失球排行top10
在这里插入图片描述
对于武球王来说,好消息是球队很能进球,坏消息是丢球也不少,目前收支还不平衡,期待武磊更好的表现。
在这里插入图片描述
4.积分变化和球队人事调整的关系
在这里插入图片描述
在这里插入图片描述
从排名来看,洛佩特吉下课确实是战绩不佳,而救火队长索拉里上任后,球队战绩有明显好转,然而近期一波三连败,将国王杯、欧冠葬送,联赛夺冠也几乎不可能。这对于皇马这样的顶级豪门来说是不能接受的,因此,齐玄宗又回来了:
在这里插入图片描述
(图片来源:懂球帝APP)

关注公众号,回复“积分动态排名”获取代码和数据。
关注公众号,送海量学习资源~
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章