怎么獲取全套皮膚?用錢買,或者用爬蟲爬取下來~雖然后者不能穿。這個案例稍微復雜一點,但是一個非常值得學習的項目。
具體實現思路:
分析網頁源代碼結構
找到合適的入口
窮舉訪問并解析
爬取所有英雄所有皮膚圖片
代碼思路/程序流程:
我分析王者榮耀網站上面的英雄資料庫發現所有英雄的頁面基本上都是連貫的,并且還是偏向與靜態網頁沒有過多的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()
討論、交流。加Q群313074041領取