当前位置: 首页>Python>正文

可以用python寫網頁嗎,有關python的比賽_用 Python 寫一個 Kaggle 比賽排行榜的爬蟲

可以用python寫網頁嗎,有關python的比賽_用 Python 寫一個 Kaggle 比賽排行榜的爬蟲

長久以來,我和小伙伴們都被 Kaggle 網站的加載速度困擾著,比如最近在用 Kaggle 上的數據集測試模型效果時,遇到排行榜(Leaderboard)刷新困難的問題。于是我們開始探索解決方案。

首先嘗試直接使用頁面鏈接進行數據爬取,很明顯爬不到,因為 Kaggle 的數據是異步響應的。于是我打開 Leaderboard 頁面的開發者工具,以著名的 Titanic 競賽的排行榜為例,打開 Network 選項,查看 XHR 項,然后 ctrl+R 刷新頁面,可以看到如下列表:

我用紅框圈起來的這個就是我們要找的排行榜數據,點擊它后可以看到它的 Request URL 如下:

然后把這個鏈接復制到瀏覽器打開,就可以看到一大段 JSON 形式的排行榜數據:

這里推薦使用在線 JSON 校驗格式化工具 Be JSON 來將這些數據重新排版,只需要粘貼過去使用“格式化校驗”功能,就可以通過更好的排版方式來查看數據了。然后我們很容易看出,整個結果是一個大的字典,里面包含著小字典:submissions:其中又包含若干個小字典,每個字典存儲一個隊伍的信息及其戰績,包括名次、隊名、分數、提交次數、最后一次提交時間等

beforeUser:包含前50名隊伍的信息及戰績

可以用python寫網頁嗎。afterUser:包含50名以后的全部隊伍信息及戰績

而我們只需要解析出 beforeUser 和 afterUser 中的數據就可以了,下面是具體的實現過程。

首先確定自己想要抓取 public 榜還是 private 榜,只有已經結束的比賽才公開了 private 榜,否則只能抓到 public 榜。具體抓數據代碼如下:

import urllib3 # pip install -i https://pypi.anaconda.org/pypi/simple urllib3

青少年python編程競賽,if type == 'public':

url = 'https://www.kaggle.com/c/{competition}/leaderboard.json?includeBeforeUser=true&includeAfterUser=true'.format(

competition=competition)

elif type == 'private':

爬蟲比賽?url = 'https://www.kaggle.com/c/{competition}/leaderboard.json?includeBeforeUser=true&includeAfterUser=true&type=private'.format(

competition=competition)

else:

print('榜單類型有誤,請檢查')

python和c++學哪個好,http = urllib3.PoolManager()

response = http.request('GET', url)

然后對抓取到的數據進行解析,取出我們需要的信息,構成更易讀的 dataframe 形式:

import pandas as pd

編程比賽,import json

ranks0 = str(response.data).replace("\\", "")

ranks1 = json.loads(ranks0[2:-1])['beforeUser']

ranks2 = json.loads(ranks0[2:-1])['afterUser']

用python寫一個網站、ranks = ranks1 + ranks2

team_list = list(ranks)

rank_score = pd.DataFrame(columns=['rank', 'teamName', 'entries', 'lastSubmission', 'score'])

for team in team_list:

用python寫網絡爬蟲、rank = team.get('rank')

teamName = team.get('teamName')

entries = team.get('entries')

lastSubmission = team.get('lastSubmission')

python競賽、score = team.get('score')

rank_score = rank_score.append(

{'rank': rank, 'teamName': teamName, 'entries': entries, 'lastSubmission': lastSubmission, 'score': score},

ignore_index=True)

rank_score

至此,我們就得到一個比賽的全部排行榜數據啦,封裝好的代碼請移步 Github,下載項目后直接在命令行執行:

python main.py titanic private

python main.py titanic public

就可以把排行榜數據作為 csv 文件存到本地啦。

分享更多關于數據挖掘的有趣內容,歡迎大家關注公眾號「數據池塘」:

https://www.nshth.com/python/338559.html
>

相关文章:

  • 可以用python寫網頁嗎
  • 青少年python編程競賽
  • 爬蟲比賽
  • python和c學哪個好
  • 編程比賽
  • 用python寫一個網站
  • 用python寫網絡爬蟲
  • Python競賽
  • pygame外星人入侵,python外星人入侵小游戲
  • 用python入侵別人手機,python外星人入侵游戲圖片_Python外星人入侵游戲編程完整版
  • 誰是外星人游戲,20_外星人游戲項目03——
  • python游戲腳本開發,python 外星人游戲怎么打開_Python外星人入侵游戲開發—創建游戲窗口
  • 用python入侵別人手機,python小游戲----外星人入侵
  • python游戲腳本開發,python 外星人游戲下載大全_【Python】Python制作外星人入侵小游戲
  • python播放聲音模塊,python外星人入侵添加音效_python外星人入侵游戲打包
  • python飛機大戰源碼,基于pygame的飛船大戰外星人游戲
  • python 外星人入侵游戲 學習總結 以及完整代碼
  • 有外星人入侵嗎,python外星人入侵游戲代碼_python外星人入侵 游戲源碼
  • python飛機大戰源碼,python項目——外星人入侵游戲
  • 純python開發的大型游戲,Python之外星人游戲(帶源碼和圖片資源)項目
  • python編程書籍推薦,培訓python排行榜
  • bilibili播放量排行榜,b站每日排行榜爬蟲
  • python爬蟲爬取網頁表格數據,python爬蟲爬取歌曲_python爬蟲實戰:爬取全站小說排行榜
  • 爬蟲爬取網站之家,【Python爬蟲】用Python爬取娛樂圈排行榜數據
  • 可以用python寫網頁嗎,有關python的比賽_用 Python 寫一個 Kaggle 比賽排行榜的爬蟲
  • python django框架,python開源框架排行_Python開源項目最新月榜TOP 10
  • 用python刷網頁瀏覽量,用Python獲取公眾號閱讀數、點贊數。
  • 用python做一個簡單的游戲,python有什么好玩的書_史上最全的Python書排行榜|你想知道的都在這里
  • python庫大全一覽,總結!Github年度最強Python庫排行榜
  • python b站 排行_Python爬蟲抓取B站小視頻排行榜,新手也可以跟著做哦!
  • ubuntu運行安卓app,ubuntu AndroiStudio 中 外設(手機、平板) 無法使用
  • ad軟件怎么將原理圖生成pcb,AD20怎樣生成PCB文件??
  • 基于python的影評數據分析,python爬取《你好, 李煥英》豆瓣評論數據
  • 測試顯卡性能的工具,技嘉顯卡性能測試軟件,你好六啊!GTX 1660 Ti深度測試:升吧
  • 捕獲異常的方法有,Scala系列20:Scala中異常捕獲與拋出異常
  • 通過thread類創建線程,【0805作業】繼承Thread類創建線程,輸出20次數字,“你好”,線程名
  • ip靜態,Centos7 配置靜態 IP 地址
  • ip靜態,Centos7 安裝,配置靜態IP