怎麼獲取全套皮膚?用錢買,或者用爬蟲爬取下來~雖然後者不能穿。這個案例稍微複雜一點,但是一個非常值得學習的項目。
具體實現思路:
-
分析網頁源代碼結構
-
找到合適的入口
-
窮舉訪問並解析
-
爬取所有英雄所有皮膚圖片
代碼思路/程序流程:
我分析王者榮耀網站上面的英雄資料庫發現所有英雄的頁面基本上都是連貫的,並且還是偏向與靜態網頁沒有過多的JavaScript渲染,所以比較適合來一波窮舉遍歷爬蟲,但是速度也很快。
利用python語法字符串操作,列表操作,字典操作等等循環遍歷英雄頁面利用python列表切片索引和字符串拼接等等方法來解析HTML得到皮膚圖片鏈接和背景故事文本,將皮膚圖片二進制文件保存爲png高清大圖,將所有英雄背景故事合併保存爲文本文檔
下面是功能以及效果展示
整體展示
爬取效果展示-豐功偉績
王者榮耀【皮膚高清大圖爬蟲】源代碼如下
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests
fo = open('./wzry-jpg/wzry-pf.txt', 'w')
path = './wzry-jpg/'
ls = []
for i in range(105,200):
url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
status_code = requests.request('get', url).status_code
if status_code != 200:
continue
for j in range(1, 9):
imgurl = url[:-5] + '{}.jpg'.format(j)
response = requests.request('get', imgurl)
if response.status_code != 200:
continue
ls.append(imgurl)
##下載
print("開始下載第{}-{}個英雄皮膚圖片>>>".format(i,j), end='')
with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
f.write(response.content)
print('======下載完成======')
for i in range(501,516):
url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
status_code = requests.request('get', url).status_code
if status_code != 200:
continue
for j in range(1, 9):
imgurl = url[:-5] + '{}.jpg'.format(j)
response = requests.request('get', imgurl)
if response.status_code != 200:
continue
ls.append(imgurl)
##下載
print("開始下載第{}-{}個英雄皮膚圖片>>>".format(i,j), end='')
with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
f.write(response.content)
print('======下載完成======')
##print(ls)
##連接寫入txt文件
for line in ls:
fo.write(line+'\n')
fo.close()
對於初學者想更輕鬆的學好Python開發,爬蟲技術,Python數據分析,人工智能等技術,這裏也給大家準備了一套系統教學資源,加Python技術學習教程qq裙:855408893,免費領取。學習過程中有疑問,羣裏有專業的老司機免費答疑解惑!點擊加入我們的 python學習圈