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