爬取王者荣耀图片

简介: 【10月更文挑战第11天】爬取王者荣耀图片。

import requests
import os
import re
from concurrent.futures import ThreadPoolExecutor
def download_img(eid, name, i, skin_name):
filename = f"王者荣耀壁纸/{eid:0>3}-{name}-{i:0>2}-{skin_name}.jpg"
print(filename)
if os.path.exists(filename):
return
img_url = f"http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{eid}/{eid}-bigskin-{i}.jpg"
res = requests.get(img_url)
with open(filename, "wb") as f:
f.write(res.content)

def download_hero_skin(hero):
eid, name = hero["ename"], hero["cname"]
res = requests.get(f"https://pvp.qq.com/web201605/herodetail/{eid}.shtml",
headers=headers)
res.encoding = "gbk"
skin_names = re.findall(
']+?data-imgname="([^"]+)"', res.text)[0].split("|")
print(eid, name, skin_names)
for i, skin_name in enumerate(skin_names, 1):
end = skin_name.find("&")
skin_name = skin_name[:len(skin_name) if end == -1 else end]
download_img(eid, name, i, skin_name)

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
}
herolist = requests.get(
"https://pvp.qq.com/web201605/js/herolist.json", headers=headers).json()
os.makedirs("王者荣耀壁纸", exist_ok=True)
with ThreadPoolExecutor(max_workers=16) as executor:
executor.map(download_hero_skin, herolist)

相关文章
|
数据采集
|
16天前
|
数据采集
爬虫案例—抓取找歌词网站的按歌词找歌名数据
爬虫案例—抓取找歌词网站的按歌词找歌名数据
33 0
|
5月前
|
数据采集 Web App开发 开发者
探秘Python爬虫技术:王者荣耀英雄图片爬取
探秘Python爬虫技术:王者荣耀英雄图片爬取
|
5月前
爬取电影数据
爬取电影数据
55 0
|
5月前
爬取猫眼电影
爬取猫眼电影
60 0
|
数据采集 Java Web App开发
爬取王者荣耀皮肤图片
用爬虫相关知识,进行爬取王者荣耀皮肤图片。
1172 1
|
数据采集 Java Web App开发
爬取英雄联盟皮肤图片
使用爬虫相关知识,进行爬取英雄联盟皮肤图片。
173 0
|
数据采集 Java Python
Python爬虫之多线程下载豆瓣Top250电影图片
爬虫项目介绍   本次爬虫项目将爬取豆瓣Top250电影的图片,其网址为:https://movie.douban.com/top250, 具体页面如下图所示:   本次爬虫项目将分别不使用多线程和使用多线程来完成,通过两者的对比,显示出多线程在爬虫项目中的巨大优势。
2454 0
|
数据采集 小程序 前端开发
【重写爬虫案例】百度图片、今日头条今日街拍爬取图片中遇到的问题
【重写爬虫案例】百度图片、今日头条今日街拍爬取图片中遇到的问题
【重写爬虫案例】百度图片、今日头条今日街拍爬取图片中遇到的问题