溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

十分鐘,Python 帶你看遍世界足球俱樂部沉浮

發(fā)布時間:2020-02-24 13:56:19 來源:網(wǎng)絡(luò) 閱讀:2024 作者:周蘿卜123 欄目:編程語言

作為一名足球迷,在年終盤點中,怎么能少了足球呢。如果你是關(guān)注歐洲足球的球迷(沒辦法,人家歐洲是足球的世界的中心),那么你一定知道,2019年是屬于利物浦的一年,不多說,紅軍的首個英超冠軍已經(jīng)遙遙在望了,fighting!

數(shù)據(jù)獲取

我們還是先來看看如何拿到我們需要的數(shù)據(jù)呢,我們這里選擇的是一個國外的統(tǒng)計網(wǎng)站,可以查看歷年的足球俱樂部得分和排名

https://footballdatabase.com/ranking/world/1

獲取俱樂部信息

首先我們需要拿到俱樂部相關(guān)的信息,這里選取前200名俱樂部,使用 BeautifulSoup 解析網(wǎng)頁即可

    for name in name_list:
        rank_list = []
        try:
            rank_point = name.find_all('td', attrs={'class': 'rank'})
            rank = rank_point[0].text
            point = rank_point[1].text
            club_info = name.find('td', attrs={'class': 'club text-left'}).find_all('a')
            club_url = club_info[0]['href']
            club_name = club_info[0].find('div', attrs={'class': 'limittext'}).text
            club_country_url = club_info[1]['href']
            club_country_name = club_info[1].text
            rank_list.append([rank, club_name, club_country_name, club_url, club_country_url, point])
            list_rank.append(rank_list)
            save_club_name(rank_list)

        except:
            pass

拿到各個俱樂部的信息后,就可以遍歷該列表,獲取俱樂部歷年的得分和排名數(shù)據(jù)

獲取俱樂部歷史數(shù)據(jù)

俱樂部的歷史數(shù)據(jù)也是保存在網(wǎng)頁的 Javascript 變量中的,對于如何獲取這種數(shù)據(jù),我們在前面的文章中也都有介紹,這里就不過多贅述了

his_rank_list = []
    for data in data_list:
        print(data)
        url = data[0][3]
        his_res = requests.get(base_url + url)
        his_content = BeautifulSoup(his_res.text, "html.parser")
        js = his_content.find_all('script')[1].string
        src_text = js2xml.parse(js)
        src_tree = js2xml.pretty_print(src_text)
        data_tree = BeautifulSoup(src_tree, 'html.parser')
        array_list = data_tree.find_all('array')
        club_name = data[0][1]
        for array in array_list[2:-2]:
            his_rank_list = []
            array_date = array.find('string').text
            date = array_date
            try:
                month = month_map[array_date.split(' ')[0]]
                year = array_date.split(' ')[1]
                date = str(year) + '-' + str(month)
            except:
                pass
            array_data = array.find_all('number')
            try:
                point = array_data[0]['value']
                rank = array_data[1]['value']
                his_rank_list.append([rank, point, date])
                save_his_data(club_name, his_rank_list)
            except:
                raise

這樣我們就可以得到兩個文件,分別是 club_data.csv 和 rank_his_data.csv

十分鐘,Python 帶你看遍世界足球俱樂部沉浮

十分鐘,Python 帶你看遍世界足球俱樂部沉浮

俱樂部排行

我們這里整理的當前世界俱樂部前20的排名,可以看到利物浦以2120分高居榜首,曼城則緊隨其后,看來世界第一聯(lián)賽還是很給力的!

接下來就是西超的巴塞和德甲霸主拜仁,在意甲實現(xiàn)了八連冠的老夫人以及無敵于法甲的大巴黎。

歐洲五大聯(lián)賽,名不虛傳

十分鐘,Python 帶你看遍世界足球俱樂部沉浮

怎么樣,快來看看有沒有你熟悉的隊徽上榜呢!

國家分布

下面我們再來看看哪些國家的俱樂部最多呢,首先是前20名的國家分布
十分鐘,Python 帶你看遍世界足球俱樂部沉浮
可以看到,英格蘭和西班牙的俱樂部最多,都有4家上榜,而次之的是意大利以及德國,都是3家,這四個國家就占去了大半。而唯一一家非歐洲的俱樂部則位于巴西,足球王國也是要面子的哇!

我們再把榜單擴大到所有的抓取數(shù)據(jù),即前200名的俱樂部數(shù)據(jù)
十分鐘,Python 帶你看遍世界足球俱樂部沉浮
西班牙的俱樂部最多,達到了20家,其次是英格蘭也有17家之多。這些年西甲英超的球隊壟斷歐冠冠軍,還是有其深厚的足球底蘊作為依托的!

而歐洲傳統(tǒng)足球強國西班牙、英格蘭、德國、法國以及意大利再加上南美雙珠阿根廷和巴西,這七大豪強的俱樂部基本占據(jù)了榜單的半壁江山,足球的格局,從來如此!

當然中超也有兩家上榜俱樂部,分別是133名的上海上港和166名的廣州恒大,任重而道遠吶!

top7 排名走勢

這七家俱樂部既有歐陸的傳統(tǒng)豪門,也有金元新秀,都是當今俱樂部中的頂級強隊。
十分鐘,Python 帶你看遍世界足球俱樂部沉浮
我們可以看出,對于“皇薩仁”來說,它們的成績都是極其穩(wěn)定的,常年處于極高的競技水平上。而當紅的利物浦則在本世紀初的前十年遭遇到了低谷,一路前行,著實不易。

再有就是金元足球的代表大巴黎和藍月亮,其中大巴黎尤為明顯,從2011年開始,得益于卡塔爾財團的進入,其排名開始急速攀升,在世界范圍內(nèi)的影響力也大幅提高,戰(zhàn)績更是不斷突破,常年壟斷法甲冠軍,不過對于歐冠賽場,巴黎還有很長的路要走。

而對于老牌勁旅尤文圖斯,相信大家都會想起著名的“電話門”事件,此事件之后,不僅尤文圖斯跌落低谷,就連意大利足球,曾經(jīng)的亞平寧聯(lián)賽的風采,都一去不復(fù)返了。不過從2011年開始,尤文走在了復(fù)興的路上,也扛起了意大利足球的大旗!

各大洲排名

我們從上面的排名不難看出,所謂的世界排名,其實大多是歐洲俱樂部,那么其他大洲的俱樂部呢,我們一起來看下。

亞洲
十分鐘,Python 帶你看遍世界足球俱樂部沉浮

非洲
十分鐘,Python 帶你看遍世界足球俱樂部沉浮

南美洲
十分鐘,Python 帶你看遍世界足球俱樂部沉浮

轉(zhuǎn)眼間快到春節(jié)了,在這里預(yù)祝各位小伙伴兒們春節(jié)快樂!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI