鱼C论坛

 找回密码
 立即注册
查看: 1003|回复: 0

[作品展示] 爬取英雄联盟的图片

[复制链接]
发表于 2019-3-25 18:56:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import requests
import re
import json
import os

# 设计模式 -- 面向对象
class Spider(object):
    def start_request(self):
        # 1. 找到所有英雄的英文名
        text = requests.get("https://lol.qq.com/biz/hero/champion.js").text
        content = re.findall(r'LOLherojs.champion=(.+?);', text)[0] # 处理成正确的json数据
        py_data = json.loads(content) # json数据转化为Python数据类型
        es_name = list(py_data['keys'].values())
        self.next_request(es_name)

    def next_request(self, es_name):
        for e_name in es_name:
            # 2. 取英雄皮肤ID
            text = requests.get("https://lol.qq.com/biz/hero/%s.js" % e_name).text
            content = re.findall(r'champion.%s=(.+?);'% e_name, text)[0] # 处理成正确的json数据
            py_data = json.loads(content) # json数据转化为Python数据类型
            hero_name = py_data['data']['name']
            if os.path.exists(hero_name) == False:
                os.mkdir(hero_name)

            for skin in py_data['data']['skins']:
                skin_id = skin['id']
                skin_name = skin['name']

                # 3. 下载皮肤
                content = requests.get("http://ossweb-img.qq.com/images/lol/web201310/skin/big%s.jpg" % skin_id).content
                # 4. 保存皮肤
                fileName = hero_name + "\\" +skin_name + ".jpg"
                print("正在保存圖片文件:" + fileName)
                try:
                    with open(fileName, "wb") as f:
                        f.write(content)
                except:
                    pass
spider = Spider()
spider.start_request()

这是爬去英雄联盟图片的代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-14 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表