圖書館的安裝
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循環嵌套數據量大,導致計算失敗,計算方法需要優化。