時間:2023-05-13 05:45:01 | 來源:網(wǎng)站運營
時間:2023-05-13 05:45:01 來源:網(wǎng)站運營
《王者榮耀》《英雄聯(lián)盟》《神之浩劫》等游戲官網(wǎng)皮膚圖片爬?。?i>本文簡介:本文使用Python制作爬蟲,來爬取《英雄聯(lián)盟》《王者榮耀》《神之浩劫》等游戲官方網(wǎng)站的英雄皮膚圖片??梢宰鳛樾率峙老x的練手實戰(zhàn)案例??!#爬取王者榮耀英雄圖片#導(dǎo)入所需模塊import requestsimport reimport os#導(dǎo)入json文件(里面有所有英雄的名字及數(shù)字)url='http://pvp.qq.com/web201605/js/herolist.json' #英雄的名字jsonhead={'User-Agent':'換成你自己的head'}html = requests.get(url,headers = head)html=requests.get(url)html_json=html.json()#提取英雄名字和數(shù)字hero_name=list(map(lambda x:x['cname'],html_json)) #名字hero_number=list(map(lambda x:x['ename'],html_json)) #數(shù)字
def main(): #用于下載并保存圖片 ii=0 for v in hero_number: os.mkdir("/home/wajuejiprince/圖片/WZRY/"+hero_name[ii]) #換成你自己的 os.chdir("/home/wajuejiprince/圖片/WZRY/"+hero_name[ii]) #換成你自己的 ii=ii+1 for u in range(12): onehero_links='http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'+str(v)+'/'+str(v)+'-bigskin-'+str(u)+'.jpg' im = requests.get(onehero_links) if im.status_code == 200: iv=re.split('-',onehero_links) open(iv[-1], 'wb').write(im.content)
執(zhí)行完上面的代碼后只需要執(zhí)行main函數(shù)就行了main()
爬取下來的圖片是這樣,每個文件夾里面是該英雄對應(yīng)的圖片,如下圖:#導(dǎo)入模塊import requestsimport refrom bs4 import BeautifulSoupimport os
得到英雄的名字:url='http://ddragon.leagueoflegends.com/cdn/6.24.1/data/en_US/champion.json' #json里面含有所有英雄的名字def get_hero_name(url): head={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36'} html = requests.get(url,headers = head) heml_json=html.json() hero_name=heml_json['data'].keys() list_of_nameMax=list(hero_name) #此時的英雄名字的首字母是大寫 list_of_nameMin=[] #此時的名字就是小寫了 for ii in list_of_nameMax: name=ii.lower() list_of_nameMin.append(name) return list_of_nameMin
定義下載一個英雄圖片的函數(shù):def get_onehero_img(name): #下載一個英雄的所有皮膚圖片 url2='http://gameinfo.na.leagueoflegends.com/en/game-info/champions/'+name+'/' head={'User-Agent':'你自己的headers'} html = requests.get(url2,headers=head) contents=html.text soup=BeautifulSoup(contents) hero_img=soup.findAll('img') reg=re.compile(r'"http://ddragon.leagueoflegends.com/cdn/img/.*?.jpg"',re.S) hero_img_links=re.findall(reg,str(hero_img)) return hero_img_links
下載保存圖片(保存地址要改):def main(): #用于下載并保存圖片 list_name=list_of_name for i in list_name: os.mkdir("/home/wajuejiprince/圖片/LOL/"+i) os.chdir("/home/wajuejiprince/圖片/LOL/"+i) ashe=get_onehero_img(i) for j in ashe: im=re.sub('"','',j) ir = requests.get(im) if ir.status_code == 200: ip=re.sub('"','',j) iu=re.split('/',im) open(iu[-1], 'wb').write(ir.content)
執(zhí)行:if __name__ == "__main__": list_of_name=get_hero_name(url) main()
import requestsimport reimport os
得到英雄名字:url='http://ddragon.leagueoflegends.com/cdn/6.24.1/data/en_US/champion.json' #json里面含有所有英雄的名字def get_hero_nameMax(url): head={'User-Agent':'你自己的headers'} html = requests.get(url,headers = head) heml_json=html.json() hero_name=heml_json['data'].keys() list_of_nameMax=list(hero_name) #此時的英雄名字的首字母是大寫 return list_of_nameMax
下載圖片(保存地址要改):onehero_links=[]list_of_nameMax=get_hero_nameMax(url)def main(): #用于下載并保存圖片 for fn in list_of_nameMax: os.mkdir("/home/wajuejiprince/圖片/LOL2/"+fn) os.chdir("/home/wajuejiprince/圖片/LOL2/"+fn) for v in range(20): onehero_links='http://ddragon.leagueoflegends.com/cdn/img/champion/splash/'+fn+'_'+str(v)+'.jpg' im = requests.get(onehero_links) if im.status_code == 200: iv=re.split('/',onehero_links) open(iv[-1], 'wb').write(im.content)
執(zhí)行:main()
import requestsimport reimport osurl='https://www.smitegame.com/gods/'head={'User-Agent':'你的head'}html = requests.get(url,headers = head)reg=re.compile(r'href="(.*?)">/n <img') #返回的是文本不用re.Shero_url=re.findall(reg,html.text) #得到所有英雄的網(wǎng)址def one_hero_picture(ul): html_hero = requests.get(ul,headers = head) if html_hero.status_code == 200: reg2=re.compile(r'"background-image:url/((.*?)/)">/n',re.S) items2=re.findall(reg2,html_hero.text) del items2[0] return items2#每個英雄的名字hero_name=list(map(lambda x:re.split('/',x)[-2],hero_url))def main(): #用于下載并保存圖片 ii=0 for v in hero_url: os.mkdir("/home/wajuejiprince/圖片/Smite/"+hero_name[ii]) os.chdir("/home/wajuejiprince/圖片/Smite/"+hero_name[ii]) ii=ii+1 one_hero=[] one_hero=one_hero_picture(v) for u in one_hero: im = requests.get(u) if im.status_code == 200: iv=re.split('/',u) open(iv[-1], 'wb').write(im.content)main()
對于《神之浩劫》的代碼有些英雄在json文件中的名字還不是該英雄網(wǎng)址的名字,記得應(yīng)該是孫悟空等,只需將hero_name中這些英雄的名稱改對即可(我沒有改,所以沒有下全)。關(guān)鍵詞:游戲,皮膚,圖片,榮耀,英雄,聯(lián)盟
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。