小項目:python3爬蟲抓取王者榮耀所有英雄皮膚原圖
Python環境:python3.6.4
author : Chris iven
效果圖:
代碼:
class WZRY_Hero(object): Origin_url = "http://pvp.qq.com/web201605/" def __init__(self,url): self.url = url def get_hero_info(self): res = requests.get(self.url) with open("herodata.json", "w", encoding="utf-8") as f: f.write(json.dumps(res.text)) # JSON.LOADS() 將文本轉換爲json對象 # JSON.DUMPS() 將json對象轉換爲文本 with open("herodata.json", "r", encoding="utf-8") as f: str = json.loads(f.read()) data2 = json.loads(str) hero_number = [] hero_name = [] for i in data2: hero_number.append(i.get("ename")) hero_name.append(i.get("cname")) #print(hero_name, '\n', hero_number) return hero_number, hero_name def write_to_mysql(self,url,): db = pymysql.connect("localhost","root","123456","game_skin","charset") pass def download_pic(self,url_number,name): i = 0 while i < len(url_number): #//game.gtimg.cn/images/yxzj/img201606/skin/hero-info/169/169-bigskin-2.jpg j = 1 while j < 8: old_url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/"+str(url_number[i])+"/"+str(url_number[i])+"-bigskin-"+str(j)+".jpg" #new_url = old_url+"-bigskin-"+str(j)+".jpg" print(name[i]+'的下載的鏈接是:',old_url) response = requests.get(old_url,timeout=10) if "404 page not found" in response.text: print("網頁錯誤,無法打開!!!") break else: try: os.mkdir("王者榮耀各英雄的皮膚/"+name[i]) except FileExistsError: pass print(name[i],"已經創建!!!") with open("王者榮耀各英雄的皮膚/"+name[i]+"/"+str(j) + ".jpg", "wb")as f: f.write(response.content) print(name[i]+"已經下載完畢!!!") j+=1 i+=1 def Main(self): number ,name = self.get_hero_info() self.download_pic(number,name) if __name__ == "__main__": url = "http://pvp.qq.com/web201605/js/herolist.json" wz = WZRY_Hero(url) wz.Main()
難度: *
大家可以嘗試着交換思路,反正我是沒找到皮膚的原名....