不知不覺英雄聯盟也到了S8,做爲S4入坑的我,還一直在默默的關注着。今年RNG的一路奪冠,再到SKT的淘汰,聯盟發生了挺大的變化,固然啦本身也從聯盟中脫坑了,平時也就看看比賽娛樂娛樂本身,雖然說生活不止眼前的苟且,還有詩和遠方,但現實老是那麼可怕,遊戲終歸是遊戲。
html
接下來作的一組拼圖也算是對本身聯盟生涯的致敬,畢竟生活不易,好好學習纔是正道。web
細節圖以下,由於圖片色彩問題,有的圖片會被複用,不過不影響大局啦~json
爬取代碼以下:ide
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請求,沒法經過原網站進行爬取)網站
②英雄詳情頁獲取皮膚(一樣是Ajax請求,這就考驗眼力了,論如何快速肯定真正的請求...)url
從上圖能夠知道圖片連接,那麼地獄行者-孫悟空的皮膚序號就是62004,接下來就要對英雄的皮膚序號進行提取,具體以下:spa
③最後成功獲取全部英雄的全部皮膚(一共1千多張,包括原畫皮膚)orm
對爬取的圖片進行拼圖操做htm
拼圖軟件使用的是AndreaMosaic,也是本身在網上找的拼圖神器,具體設置如上圖,也能夠本身多試試,說不定就有不同的效果。
最後附上兩張招牌皮膚