Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖1

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖2

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖3


Python騰訊大牛直播預(yù)約:

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖4

細(xì)節(jié)圖如下,因為圖片色彩問題,有的圖片會被復(fù)用,不過不影響大局啦~

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖5

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖6

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖7

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖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()


①所有英雄名稱以及相應(yīng)的數(shù)字獲取(Ajax請求,無法通過原網(wǎng)站進(jìn)行爬取)

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖9

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖10


②英雄詳情頁獲取皮膚(同樣是Ajax請求,這就考驗眼力了,論如何快速確定真正的請求...)

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖11

從上圖可以知道圖片鏈接,那么地獄行者-孫悟空的皮膚序號就是62004,接下來就要對英雄的皮膚序號進(jìn)行提取,具體如下:

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖12

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖13


最后成功獲取所有英雄的所有皮膚(一共1千多張,包括原畫皮膚)

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖14


Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖15

對爬取的圖片進(jìn)行拼圖操作

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖16

拼圖軟件使用的是AndreaMosaic,也是自己在網(wǎng)上找的拼圖神器,具體設(shè)置如上圖,也可以自己多試試,說不定就有不一樣的效果。


最后附上張招牌皮膚

Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)英雄聯(lián)盟皮膚大拼圖的圖17


登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

3
1