当前位置: 首页>JAVA>正文

英雄聯盟皮膚爬蟲

英雄聯盟皮膚爬蟲

普通版:

import requests
import osdef get_one(n):url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/' + str(n) + '.js'header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}# header作用:模擬瀏覽器訪問網頁lst = []  # 存放皮膚名稱及urlr = requests.get(url, headers=header)if r.status_code == 200:  # 判斷網頁是否存在con = r.json()  # 獲取requests內容中的json字符串數據for i in con['skins']:  # skins中存放有皮膚數據if i['mainImg'] != '':dic = {'img_url': i['mainImg'],'img_name': i['name']}else:  # 炫彩皮膚的各種形態dic = {'img_url': i['chromaImg'],'img_name': i['name']}lst.append(dic)print(lst)name = con['hero']['name']  # 英雄的名稱path = "D:聯盟"os.makedirs(path + '/' + name)  # 創建以英雄名稱命名的文件夾for i in lst:con = requests.get(i['img_url'], headers=header)  # 獲取圖片數據with open(path + '/' + name + '/' + i['img_name'] + '.png', 'wb') as f:  # 創建以英雄皮膚名稱命名的png文件print(i['img_url'])f.write(con.content)  # 寫入圖片數據print('寫入' + i['img_name'] + '成功')def get_ones():for i in range(1, 888):  # 循環訪問,如果是空白頁,就跳過繼續執行,因為發現網頁后面的id不按套路出牌get_one(i)if __name__ == '__main__':  # 文件作為腳本時才會被執行,而 import 到其他腳本中不會被執行get_ones()

多線程版:

from concurrent.futures import ThreadPoolExecutorimport requests
import osdef get_one(url):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}# header作用:模擬瀏覽器訪問網頁r = requests.get(url, headers=header)if r.status_code == 200:  # 判斷網頁是否存在con = r.json()  # 獲取requests內容中的json字符串數據name = con['hero']['name']  # 英雄的名稱path = "D:/聯盟"os.makedirs(path + '/' + name)  # 創建以英雄名稱命名的文件夾for i in con['skins']:  # skins中存放有皮膚數據if i['mainImg'] != '':c = requests.get(i['mainImg'], headers=header)  # 獲取圖片數據with open(path + '/' + name + '/' + i['name'] + '.png', 'wb') as f:  # 創建以英雄皮膚名稱命名的png文件print(i['mainImg'])f.write(c.content)  # 寫入圖片數據print('寫入' + i['name'] + '成功')else:  # 炫彩皮膚的各種形態c = requests.get(i['chromaImg'], headers=header)  # 獲取圖片數據with open(path + '/' + name + '/' + i['name'] + '.png', 'wb') as f:  # 創建以英雄皮膚名稱命名的png文件print(i['chromaImg'])f.write(c.content)  # 寫入圖片數據print('寫入' + i['name'] + '成功')if __name__ == '__main__':  # 文件作為腳本時才會被執行,而 import 到其他腳本中不會被執行urls = []for i in range(1, 888):urls.append('https://game.gtimg.cn/images/lol/act/img/js/hero/' + str(i) + '.js')with ThreadPoolExecutor(887) as f:  # 多線程f.map(get_one, urls)print()print("爬取結束~蕪湖")

https://www.zydui.com/afe86VW8CDQ9VAF8C.html
>

相关文章:

  • PyTorch學習筆記(15) ——PyTorch中的contiguous
  • 英雄聯盟英雄名單部分功能
  • 英雄聯盟皮膚爬蟲
  • java中for循環執行順序
  • for循環執行順序詳解(避坑)
  • DS18B20序列號的讀取
  • 上古卷軸java怎么刷_上古卷軸5快速升級方法一覽 教你如何快速升級
  • 上古卷軸 java_我打通了197KB的《上古卷軸四:湮滅》,諾基亞手機上的那一種...
  • 上古世紀服務器維護,9月22日臨時維護修改會員排隊問題服務器擴容公告
  • 上古世紀服務器維護真情禮,【已開服】4月15日經典服例行維護版本更新公告
  • 上古卷軸ol java_上古卷軸ol怎么滿級快
  • 全網最詳細解釋memcached中的flags含義
  • FLAGS寄存器 標志寄存器 英文全稱 方便記憶
  • Java爬蟲實戰第二篇:IOS、安卓應用爬蟲
  • 什么是storedownloaded,為什么在Mac上運行?
  • CSDN富文本編輯器回車行間距過大問題的解決
  • 批量處理word所有回車行
  • shell判斷字符串變量是否為空,包括純空格、空串、回車行是空白行等
  • 計算機畢業設計之開山車行二手車交易系統
  • Java實現“xx車行管理系統”
  • Java面試案例-車行易
  • 車行管理系統 java小作業
  • 3個躺著賺錢的神仙副業
  • 計算機中的windows任務管理器在哪,Win10系統中的explorer.exe在哪?怎么重啟Windows資源管理器?...
  • Win11查看文件資源管理器選項卡的方法
  • 為什么你總get不到增長玩法背后的邏輯?
  • JDBC連接MySQL數據庫(一)
  • 從零學Java(18)之三元運算符
  • CGU APAC 2017盛大開幕,七彩虹與英偉達聯手打造電競盛宴
  • AP 計算機 華麗逆襲-----被麻省理工計算機博士老師反復勸退的學生逆襲的肺腑之言