Python爬取英雄联盟英雄皮肤

利用Python爬取英雄联盟官网皮肤图片

使用正则表达式匹配

import requests
import json
import re


def getLOLImages():
    # 获取源代码
    url_js = "http://lol.qq.com/biz/hero/champion.js"
    html_js = requests.get(url_js).text
    # 200 请求成功
    # print(html_js)
    # pass
    # 正则表达式
    req = '"keys":(.*?),"data"'
    list_js = re.findall(req, html_js)
    # print(list_js[0])
    dict_js = json.loads(list_js[0])
    # 拼接路径
    pic_list = []
    for hero_id in dict_js:
        print(hero_id)
        for i in range(20):
            num = str(i)
            if len(num) == 1:
                hero_num = "00" + num
            elif len(num) == 2:
                hero_num = "0" + num
            print(hero_num)
            numstr = hero_id + hero_num
            url = 'http://ossweb-img.qq.com/images/lol/web201310/skin/big1' + numstr + '.jpg'
            pic_list.append(url)

    list_filepath=[]
    path = "E:\python demo\lol\LOLpic\\"

    for name in dict_js.values():
        print(name)
        for i in range(20):
            file_path = path + name + str(i) +".jpg"
            list_filepath.append(file_path)

    #下载图片
    n=0
    for picurl in pic_list:
        # print(picurl)
        res=requests.get(picurl)
        # print(res)
        n=n+1
        if res.status_code==200:
            print("正在下载%s:"%list_filepath[n])
            # f=open(list_filepath[n],"wb")
            # f.write(res.content)
            # f.close()
            with open(list_filepath[n],"wb") as f:
                f.write(res.content)

getLOLImages()

猜你喜欢

转载自blog.csdn.net/bancroft_boy/article/details/81105907