30行代码爬取英雄联盟端游英雄皮肤图片
源碼在底下
端游網(wǎng)頁鏈接 :英雄聯(lián)盟全新官方網(wǎng)站-騰訊游戲
1、點(diǎn)擊資料庫
2、按F12進(jìn)入開發(fā)者模式并刷新,在搜索框里輸入js回車
找到hero_list.js,這個里面存儲著所有的英雄信息
?點(diǎn)擊hero_list.js,在preview里面就能看到儲存的信息
3 、隨機(jī)點(diǎn)一個英雄進(jìn)去,在這里我選擇的是安妮
然后按F12進(jìn)入開發(fā)者模式并刷新
4、在搜索框里輸入js并找到標(biāo)注的地方
?點(diǎn)擊進(jìn)去,我們就可以發(fā)現(xiàn)安妮的所有皮膚信息都存儲在skins里面
?通過測試我們發(fā)現(xiàn)皮膚的大圖在mainimg里面
?5、整理思路
????????先看一下1.js的網(wǎng)頁鏈接,我們多看幾個英雄就可以發(fā)現(xiàn)這個鏈接構(gòu)成只有hero/后的數(shù)字不同,剩下的全部都是相同的,通過對比hero_list.js,我們就可以發(fā)現(xiàn)這個數(shù)字就是hero_list里面的heroId。
? ? ? ? 因此,我們先通過hero_list.js提取出所有英雄的heroid以及name,然后通過添加heroid構(gòu)成每個英雄儲存皮膚信息的鏈接,再提取出所有的圖片
?6、源代碼
import requests import os import jsonurl = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2755589" response = requests.get(url).text #將獲取到的網(wǎng)頁信息轉(zhuǎn)化為json格式 html = json.loads(response) listHero = html['hero']#計數(shù)器 sum = 0 #提取信息 for i in listHero:heroNumber = i['heroId']heroName = i['name']#一個英雄創(chuàng)建一個文件夾h = "F:\\lolComputer_img\\"+heroName+r"\\"if not os.path.exists(h):os.makedirs(h)#構(gòu)建每個英雄的皮膚圖片鏈接imgText = "https://game.gtimg.cn/images/lol/act/img/js/hero/"+heroNumber+".js?ts=2755591"imgResponse = requests.get(imgText).text#轉(zhuǎn)化為json格式imgHtml = json.loads(imgResponse)img_url = imgHtml['skins']#提取信息for i in img_url:'''皮膚的大圖儲存在mainImg中,但是有的炫彩皮膚并沒有大圖,而是小圖標(biāo)的形式存在的。所以需要判斷mainImg是否是空的。如果是則跳過'''if i['mainImg'] != "":img = requests.get(i['mainImg']).content#將圖片寫入文件夾中with open(h+i['name'].replace("/","")+'.jpg','wb') as f:f.write(img)#計數(shù)sum = sum+1print(sum,i['name'],"下載成功!")else:pass print("下載完成!")7、成果
總結(jié)
以上是生活随笔為你收集整理的30行代码爬取英雄联盟端游英雄皮肤图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检索逐小时空气质量数据
- 下一篇: 全国113个城市空气质量的K均值聚类分析