1. 程式人生 > 實用技巧 >教你這樣做王者農藥的面板都是你的!

教你這樣做王者農藥的面板都是你的!

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

一、前言

聽說很多小夥伴喜歡王者榮耀這個moba類遊戲,下面老師帶大家把遊戲中所有英雄的面板圖片爬取下來一睹為快把。。。

二、課程亮點

1、分析url地址構成
2、資料的欄位提取
3、記錄程式執行時間

三、所用到得庫

import requests  # 第三方模組
import time  # 時間模組
import pprint  # 格式化輸出模組

四、環境配置

python 3.6
pycharm
requests

五、找尋資料地址:

# 記錄程式執行的開始時間(時間戳)
start_time = time.time()
# 找資料地址
url = 'https://pvp.qq.com/web201605/js/herolist.json'


六、傳送網路請求

# 傳送網路請求
response = requests.get(url=url)
json_data = response.json()
# pprint.pprint(json_data)

七、完整程式碼:

# 資料提取  id(ename)  英雄名字(cname)  面板數量(skin_name)
for data in json_data:
    cname = data['cname']  # 英雄名字
    ename = data['ename']  # 英雄id(ename)
    try:
        skin_name = data['skin_name'].split('|')  # 面板數量(skin_name)
    except:
        pass
    # print(cname, ename, skin_name)

    # 構建面板數量的迴圈
    """
    http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/106/106-bigskin-7.jpg

    http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/ + 英雄id + '/' + 英雄id + -bigskin- + 面板數量 + '.jpg'
    """
    for skin_num in range(1, len(skin_name) + 1):
        skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(ename) + '/' + str(
            ename) + '-bigskin-' + str(skin_num) + '.jpg'
        # print(skin_url)

        # 請求每一個圖片地址資料
        skin_data = requests.get(skin_url).content

        # 圖片資料的儲存  英雄名字 + 面板名字 + 檔案尾綴
        with open('pic\\' + cname + '-' + skin_name[skin_num - 1] + '.jpg', mode='wb') as f:
            f.write(skin_data)
            print('儲存完成:', cname + '-' + skin_name[skin_num - 1])

all_time = time.time() - start_time
print('共花費時間(單位秒): ', all_time)

結尾

爬蟲是非常有趣的,因為它非常直觀,視覺衝擊感強,寫出來也很有成就感,爬蟲雖然強大,但千萬不能隨意爬取隱私資訊。


想要獲取更多Python學習資料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起來學習討論吧!