python3爬蟲---抓取王者榮耀所有英雄皮膚原圖

小項目: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()

難度: *

大家可以嘗試着交換思路,反正我是沒找到皮膚的原名....



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章