歡迎光臨
每天分享高質量文章

如何用Python爬取LOL官網全英雄面板


你沒有看錯,沒錯今天小編帶你爬取LOL官網全英雄面板的圖片

不要失望,也不要難過

接下咱們來講講怎麼爬取LOL官網


本次案例使用到的模組

import requests
import re
import json

安裝模組:

pip install requests
#re、json都是自帶的不需要安裝

01

獲取JS原始碼  獲取英雄的ID

首先讓咱們找到每個英雄面板的地址,F12開啟開發者工具頁面選擇器,選中圖片自動找尋到圖片的地址

龍的傳人 李青的圖片地址:

http://ossweb-img.qq.com/images/lol/web201310/skin/big64003.jpg

神僧 李青圖片地址:

http://ossweb-img.qq.com/images/lol/web201310/skin/big64011.jpg


不難發現其中的規律:

big64003.jpg

big64011.jpg

很明顯 64是英雄的ID地址 003是面板順序


找到JS原始碼,你會發現英雄的ID地址並不是按照順序排列下來的!

def getLOLImages():
    url_js = 'http://lol.qq.com/biz/hero/champion.js'
    #獲取JS原始碼 str bytrs位元組
    res_js = requests.get(url_js).content
    #轉碼
    html_js = res_js.decode()
    #正則表達
    req = '"keys":(.*?),"data"'
    list_js = re.findall(req,html_js)
    # str → dict
    dict_js = json.loads(list_js[0])
    print(dict_js)

很多不明白這個正則運算式怎麼寫,這裡簡單的說明一下:

前面是 “keys”:後面是,“data” 然後我們需要提取的是中間的部分,那麼不管它們是啥,我們就是.?* 萬用字元全部匹配出來。

後面就不詳細講解了,本篇文章最後,小編會帶上詳細的影片講解

02

拼接URL地址、獲取下載圖片的地址

    pic_list = []
    for key in dict_js:
        #print(key)
        for i in range(20):
            num = str(i)
            if len(num) == 1:
                hreo_num = "00"+num
            elif len(num) == 2:
                hreo_num = "0"+num
            numstr = key+hreo_num
            url = "http://ossweb-img.qq.com/images/lol/web201310/skin/big"+numstr+".jpg"
            print(url)
            pic_list.append(url)

            list_filepath = []
            path = "圖片儲存地址"
            #print(dict_js.values())
            for name in dict_js.values():
                for i in range(20):
                    file_path = path + name + str(i) + '.jpg'
                    list_filepath.append(file_path)
                    #print(list_filepath)

03

下載圖片

    n = 0               
    for picurl in pic_list:
        res = requests.get(picurl)
        n+=1

        if res.status_code ==200:

            print("正在下載%s"%list_filepath[n])

            with open(list_filepath[n],'wb') as f:
                f.write(res.content)

04

詳細影片學習地址

連結:https://pan.baidu.com/s/1TbPuMUsKvuk9bqh3hm6wNQ 

密碼:ewyk

點選閱讀原文即可進入百度雲,在這裡複製密碼就好了

贊(0)

分享創造快樂