Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图1

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图2

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图3


Python腾讯大牛直播预约:

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图4

细节图如下,因为图片色彩问题,有的图片会被复用,不过不影响大局啦~

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图5

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图6

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图7

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图8

爬取代码如下:

import requests
import json
import time
import re

headers = {
    'User-Agent''Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}

def get_hero(url):
    response = requests.get(url=url, headers=headers)
    html = response.text
    result = re.findall('if.*?champion=(.*?)data', html, re.S)
    data = json.loads(result[0][:-2] + '}')
    for key, value in data['keys'].items():
        hero = value
        get_skin(hero)
        time.sleep(2)

def get_skin(hero):
    url = 'http://lol.qq.com/biz/hero/' + hero + '.js'
    response = requests.get(url=url, headers=headers)
    html = response.text
    result = re.findall('"id":"(\d{4,6})","num"', html, re.S)
    for i in range(len(result)):
        url_image = "http://ossweb-img.qq.com/images/lol/web201310/skin/big" + result[i] + ".jpg"
        res = requests.get(url=url_image, headers=headers).content
        with open("images" + str(result[i]) + ".jpg""wb"as ob:
            ob.write(res)
            ob.close()
            print(str(result[i]) + "is Done")

def main():
    print('start the work')
    url = 'http://lol.qq.com/biz/hero/champion.js'
    get_hero(url)

if __name__ == '__main__':
    main()


①所有英雄名称以及相应的数字获取(Ajax请求,无法通过原网站进行爬取)

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图9

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图10


②英雄详情页获取皮肤(同样是Ajax请求,这就考验眼力了,论如何快速确定真正的请求...)

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图11

从上图可以知道图片链接,那么地狱行者-孙悟空的皮肤序号就是62004,接下来就要对英雄的皮肤序号进行提取,具体如下:

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图12

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图13


最后成功获取所有英雄的所有皮肤(一共1千多张,包括原画皮肤)

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图14


Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图15

对爬取的图片进行拼图操作

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图16

拼图软件使用的是AndreaMosaic,也是自己在网上找的拼图神器,具体设置如上图,也可以自己多试试,说不定就有不一样的效果。


最后附上张招牌皮肤

Python爬虫实战,requests模块,Python实现英雄联盟皮肤大拼图的图17


默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注