zoukankan      html  css  js  c++  java
  • Python-下载英雄皮肤

    def hero_skin():
        import json
        import os
        import requests
        from bs4 import BeautifulSoup
    
        headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
        hero_prefix = 'https://pvp.qq.com/web201605/herodetail/'
        skin_prefix = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'
    
        def get_heroes():
            data_url = 'https://pvp.qq.com/web201605/js/herolist.json'
            r = requests.get(data_url, headers)
            return json.loads(r.text)
    
        def process_hero(hero):
            hero_id = str(hero['ename'])
            hero_name = hero['cname']
            hero_path = os.path.join("皮肤", hero_name)
            if not os.path.isdir(hero_path):   os.mkdir(hero_path)
            hero_url = hero_prefix + hero_id + '.shtml'
            r = requests.get(hero_url, headers)
            text = r.text.encode('iso-8859-1').decode('gbk')
            soup = BeautifulSoup(text, 'lxml')
            skins = soup.select('ul.pic-pf-list.pic-pf-list3')[0].get('data-imgname').split('|')
            for i in range(len(skins)):
                # 页面信息是动态加载出来得,不能直接提取,需要拼装(下载大图)
                img_url = skin_prefix + hero_id + '/' + hero_id + '-bigskin-' + str(i + 1) + '.jpg'
                r = requests.get(img_url, headers)
                with open(hero_path + '/' + skins[i] + '.jpg', 'wb+') as f:
                    f.write(r.content)
            print(hero_name + '' + str(len(skins)) + '张皮肤')
    
    
        for hero in get_heroes():
            process_hero(hero)
    
    hero_skin()
  • 相关阅读:
    objectivec随机数
    UITableView中多个UITextField时UITableView的滚动和键盘的隐藏
    objectivec用图片设置backgroundcolor
    SQL代码添加字段
    如何让第三方库暂时不用arc
    快速统计表中的记录总数
    商务报盘英语
    对话:职业健康和安全
    你适合买房还是租房?
    怎样与同事和谐相处
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/12923360.html
Copyright © 2011-2022 走看看