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

做爲一名足球迷,在年終盤點中,怎麼能少了足球呢。若是你是關注歐洲足球的球迷(沒辦法,人家歐洲是足球的世界的中心),那麼你必定知道,2019年是屬於利物浦的一年,很少說,紅軍的首個英超冠軍已經遙遙在望了,fighting!html

數據獲取

咱們仍是先來看看如何拿到咱們須要的數據呢,咱們這裏選擇的是一個國外的統計網站,能夠查看歷年的足球俱樂部得分和排名app

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

獲取俱樂部信息

首先咱們須要拿到俱樂部相關的信息,這裏選取前200名俱樂部,使用 BeautifulSoup 解析網頁便可網站

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

拿到各個俱樂部的信息後,就能夠遍歷該列表,獲取俱樂部歷年的得分和排名數據url

獲取俱樂部歷史數據

俱樂部的歷史數據也是保存在網頁的 Javascript 變量中的,對於如何獲取這種數據,咱們在前面的文章中也都有介紹,這裏就不過多贅述了3d

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.csvcode

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

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

俱樂部排行

咱們這裏整理的當前世界俱樂部前20的排名,能夠看到利物浦以2120分高居榜首,曼城則緊隨其後,看來世界第一聯賽仍是很給力的!xml

接下來就是西超的巴塞和德甲霸主拜仁,在乎甲實現了八連冠的老夫人以及無敵於法甲的大巴黎。htm

歐洲五大聯賽,名不虛傳blog

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

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

國家分佈

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

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

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

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

top7 排名走勢

這七傢俱樂部既有歐陸的傳統豪門,也有金元新秀,都是當今俱樂部中的頂級強隊。
十分鐘,Python 帶你看遍世界足球俱樂部沉浮
咱們能夠看出,對於「皇薩仁」來講,它們的成績都是極其穩定的,常年處於極高的競技水平上。而當紅的利物浦則在本世紀初的前十年遭遇到了低谷,一路前行,着實不易。

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

而對於老牌勁旅尤文圖斯,相信你們都會想起著名的「電話門」事件,此事件以後,不只尤文圖斯跌落低谷,就連意大利足球,曾經的亞平寧聯賽的風采,都一去不復返了。不過從2011年開始,尤文走在了復興的路上,也扛起了意大利足球的大旗!

各大洲排名

咱們從上面的排名不難看出,所謂的世界排名,其實大可能是歐洲俱樂部,那麼其餘大洲的俱樂部呢,咱們一塊兒來看下。

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

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

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

轉眼間快到春節了,在這裏預祝各位小夥伴兒們春節快樂!

相關文章
相關標籤/搜索