美文网首页Python数据分析
数据分析西甲联赛,积分榜动态显示

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

作者: f5065e26181b | 来源:发表于2019-03-13 22:08 被阅读2次

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

    作为一名资深球迷和二把刀程序员,一直想将数据分析用于足球比赛分析。年前有段时间,30年GDP动态变化图着实让人看着心潮澎湃。近期,五大联赛都进入了争冠的冲刺期,因此以西甲为例,看一看动态积分排名和数据分析在足球联赛中的应用。
    按照惯例,先上图:


    动态显示.gif

    文章主要分三个部分:

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

    /1/数据获取

    网络上实时的联赛积分数据很容易找到,但是每一轮的历史数据记录极少,千辛万苦,找到“一比分”网站,链接:https://data.13322.com/league-31/scjf.html。网页截图为:

    网页截图
    对网页进行分析,必须通过点击选择“轮次”才能获取该轮积分数据,这就使传统的爬虫方法失效了。
    image
    因此,调用“selenium”模拟浏览器进行登录。
    browser = webdriver.Chrome()
    wait = WebDriverWait(browser ,10)
    

    通过CSS_SELECTOR定位触发轮次数据变化的位置,如图:


    image

    定义触发语句,并获取当页数据:

    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
    

    最后调用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

    image
    使用方法,只需打开src目录下的bargraph.html。然后点击页面中间的选择文件按钮,接着选择csv格式的数据文件,便可以看到可视化的结果。
    example有四个参数,name,type,value,date。根据爬取数据进行整理即可:
    image
    通过定义config.js和visual.js对显示参数进行调整。如添加图标路径:
    image
    最终结果如开头所示。

    /3/其他数据分析

    除做出积分动态变化图外,还对其他数据进行分析。

    1. 联赛胜率排行top10


      image

      巴萨不说了,皇马和马竞的差别就在于防守。
      2.联赛进球排行top10


      image
      3.联赛失球排行top10
      image

      对于武球王来说,好消息是球队很能进球,坏消息是丢球也不少,目前收支还不平衡,期待武磊更好的表现。


      image
      4.积分变化和球队人事调整的关系
      image
      image
      从排名来看,洛佩特吉下课确实是战绩不佳,而救火队长索拉里上任后,球队战绩有明显好转,然而近期一波三连败,将国王杯、欧冠葬送,联赛夺冠也几乎不可能。这对于皇马这样的顶级豪门来说是不能接受的,因此,齐玄宗又回来了:
      image

    (图片来源:懂球帝APP)

    关注公众号,回复“积分动态排名”获取代码和数据。

    关注公众号,送海量学习资源~

    image

    相关文章

      网友评论

        本文标题:数据分析西甲联赛,积分榜动态显示

        本文链接:https://www.haomeiwen.com/subject/wootmqtx.html