教你用Python爬取英雄聯盟皮膚原畫_第1頁
教你用Python爬取英雄聯盟皮膚原畫_第2頁
教你用Python爬取英雄聯盟皮膚原畫_第3頁
教你用Python爬取英雄聯盟皮膚原畫_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第教你用Python爬取英雄聯盟皮膚原畫1.先去《英雄聯盟》官網找到英雄及皮膚圖片的網址:

/data/info-heros.shtml

2.從上面網址可以看到所有英雄都在,按下F12查看源代碼,發現英雄及皮膚圖片并沒有直接給出,而是隱藏在JS文件中。這時候需要點開Network,找到js窗口,刷新網頁,就看到一個champion.js的選項,點擊可以看到一個字典——里面就包含了所有英雄的名字(英文)以及對應的編號。

3.但是只有英雄的名字(英文)以及對應的編號并不能找到圖片地址,于是回到網頁,隨便點開一個英雄,跳轉頁面后發現英雄及皮膚的圖片都在,但要下載還需要找到原地址,這是鼠標右擊選擇“在新標簽頁中打開”,新的網頁才是圖片的原地址。

4.圖中紅色框就是我們需要的圖片地址,經過分析知道:每一個英雄及皮膚的地址只有編號不一樣(/images/lol/web201310/skin/big266000.jpg),而該編號有6位,前3位表示英雄,后三位表示皮膚。剛才找到的js文件中恰好有英雄的編號,而皮膚的編碼可以自己定義,反正每個英雄皮膚不超過20個,然后組合起來就可以了。

二、推理代碼

第一步:獲取js字典

defpath_js(url_js):

res_js=requests.get(url_js,verify=False).content

html_js=res_js.decode("gbk")

pat_js=r'"keys":(.*),"data"'

enc=pile(pat_js)

list_js=enc.findall(html_js)

dict_js=eval(list_js[0])

returndict_js

第二步:從js字典中提取到key值生成url列表

defpath_url(dict_js):

pic_list=[]

forkeyindict_js:

foriinrange(20):

xuhao=str(i)

iflen(xuhao)==1:

num_houxu="00"+xuhao

eliflen(xuhao)==2:

num_houxu="0"+xuhao

numStr=key+num_houxu

url=r'/images/lol/web201310/skin/big'+numStr+'.jpg'

pic_list.append(url)

print(pic_list)

returnpic_list

第三步:從js字典中提取到value值生成name列表

defname_pic(dict_js,path):

list_filePath=[]

fornameindict_js.values():

foriinrange(20):

file_path=path+name+str(i)+'.jpg'

list_filePath.append(file_path)

returnlist_filePath

第四步:下載并保存數據

defwriting(url_list,list_filePath):

try:

foriinrange(len(url_list)):

res=requests.get(url_list[i],verify=False).content

withopen(list_filePath[i],"wb")asf:

f.write(res)

exceptExceptionase:

print("下載圖片出錯,%s"%(e))

returnFalse

第五步:執行主程序

if__name__=='__main__':

url_js=r'/biz/hero/champion.js'

path=r'./data/'#圖片存在的文件夾

dict_js=path_js(url_js)

url_list=path_url(dict_js)

list_filePath=name_pic(dict_js,pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論