當前位置:成語大全網 - 書法字典 - Python爬蟲——抓取LOL雲頂的遊戲數據

Python爬蟲——抓取LOL雲頂的遊戲數據

本來爬完想算出最佳綁定組合,但是知識點(知識圖譜)消化不了,所以暫時沒有組合,力量有限。

圖書館的安裝

1 .請求?#抓取棋子數據

2.json?# Chess數據是js動態的,需要json解析。

3.美麗的聲音

實戰前新建壹個lol文件夾作為工作目錄,並創建壹個子目錄數據用於存儲數據。

1.抓取數據並創建壹個新的py文件,用於抓取雲頂數據並命名為data.py

1.1定義了壹個req函數,便於閱讀。//需要設置編碼格式,否則會出現亂碼。

定義重復數據(url):

re = requests.get(url)

re.encoding = 'gbk '

data = json.loads(re.text)

返回數據['data']

1.2定義了壹個Get函數,通過使用save函數來讀取數據和保存數據。保存格式為json。

def Get_data():

#獲取數據並將其保存到數據目錄。

base _ URL = '/images/lol/act/img/tft/js/'

chess = Re _ data(base _ URL+' chess . js ')

race = Re_data(base_url + 'race.js ')

job = Re_data(base_url + 'job.js ')

equip = Re _ data(base _ URL+' equip . js ')

保存數據(國際象棋,比賽,工作,裝備)

1.3定義了save函數來保存讀取的數據,保存目錄是工作目錄下的data文件夾。

def Save_data(t_chess,t_race,t_job,t_equip):

帶開('。/data/chess.json ',' w ')作為f:

json.dump(t_chess,f,indent='\t ')

帶開('。/data/race.json ',' w ')作為f:

json.dump(t_race,f,indent='\t ')

帶開('。/data/job.json ',' w ')作為f:

json.dump(t_job,f,indent='\t ')

帶開('。/data/equip.json ',' w ')作為f:

json.dump(t_equip,f,indent='\t ')

1.4定義了要運行的主函數main。

if __name__ == '__main__ ':

start = time.time()

Get_data()

Print('運行時間:'+str(time.time()-start)+'秒')

至此,數據抓取完成。

2.種族和職業結合在壹起。

2.1不完整//不完整。如果使用窮舉法進行組合,會出現內存不足的情況,從而導致組合失敗(因為循環嵌套會導致數組內存溢出)。

//要學習,用知識圖譜建立組合優化,請參考:/12447.html。

在此期間遇到的問題:

1.爬行棋類數據時,由動態js加載,需要通過json模塊的loads方法獲取。

2.3層for循環嵌套數據量大,導致計算失敗,計算方法需要優化。