當前位置:編程學習大全網 - 源碼下載 - python爬蟲---爬取LOL雲頂之弈數據

python爬蟲---爬取LOL雲頂之弈數據

本來是想爬取之後作最佳羈絆組合推算,但是遇到知識點無法消化(知識圖譜),所以暫時先不組合了,實力有限

庫的安裝

1.requests? #爬取棋子數據

2.json? #棋子數據為js動態,需使用json解析

3.BeautifulSoup

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

1.爬取數據,新建個py文件,用於爬取雲頂數據,命名為data.py

1.1定義個req函數,方便讀取。//需設定編碼格式,否則會出現亂碼

def Re_data(url):

re = requests.get(url)

re.encoding = 'gbk'

data = json.loads(re.text)

return data['data']

1.2定義個Get函數,用於讀取數據並使用保存函數進行保存數據,保存格式為json。

def Get_data():

# 獲取數據並保存至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')

Save_data(chess,race,job,equip)

1.3定義save函數實現讀取的數據進行文件保存,保存目錄為工作目錄下的data文件夾。

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

with open('./data/chess.json','w') as f:

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

with open('./data/race.json','w') as f:

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

with open('./data/job.json','w') as f:

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

with open('./data/equip.json','w') as 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未完成 //未完成,使用窮舉方法進行組合會出現內存不夠導致組合失敗(for循環嵌套導致數組內存超限)

//待學習,使用知識圖譜建立組合優選,可參考:/12447.html

期間遇到的問題:

1.爬取棋子數據時為動態js加載,需通過json模塊的loads方法獲取

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

  • 上一篇:微信小程序開發要多少錢?
  • 下一篇:抖音娛樂電腦直播要下載什麽軟件
  • copyright 2024編程學習大全網