下载王者荣耀高清壁纸

news/2024/11/22 18:57:11/
import requests
from urllib import parse
import os
from urllib import requestheaders={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'referer':'https://pvp.qq.com/'
}#发送请求
def send_requests(v):print(v)url=f'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage={v}&page={v}&iOrder=0&iSortNumClose=1&jsoncallback=&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1661612201998'resq=requests.get(url,headers=headers)return resq.json()#解析json
def parse_json(json_data):data_lst=json_data['List']d={}for data in data_lst:image_url_lst=exact_url(data)sProdName=parse.unquote(data['sProdName'])d[sProdName]=image_url_lst'''for item in d:print(item,d[item])'''save_img(d)#存储函数
def save_img(d):a=1for key in d:#拼接路径   image/皮肤名称dirpath=os.path.join('image',key.strip(' '))if not os.path.exists(dirpath):os.mkdir(dirpath)#下载图片并且保存print(a)a+=1for index,image_url in enumerate(d[key]):request.urlretrieve(image_url,os.path.join(dirpath,'{}.jpg').format(index+1))print('{}下载完毕'.format(d[key][index]))#获取每张壁纸大小的url
def exact_url(data):image_url_lst=[]for i in range(1,9):image_url=parse.unquote(data['sProdImgNo_{}'.format(i)]).replace('200','0')image_url_lst.append(image_url)return image_url_lst#运行函数
def start():for v in range(30):json_data=send_requests(v)parse_json(json_data)if __name__ == '__main__':start()

以上虽然可以下载,但运行速度过慢,可以使用多线程下载


import requests
from urllib import parse
from urllib import request
from queue import Queue
import threading
import os
headers={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'referer':'https://pvp.qq.com/'
}#获取每张壁纸大小的url
def exact_url(data):image_url_lst=[]for i in range(1,9):image_url=parse.unquote(data['sProdImgNo_{}'.format(i)]).replace('200','0')image_url_lst.append(image_url)return image_url_lst#生产者线程
class Producter(threading.Thread):def __init__(self,page_queue,image_url_queue):super().__init__()self.page_queue=page_queueself.image_url_queue=image_url_queuedef run(self):while not self.page_queue.empty():page_url=self.page_queue.get()resp=requests.get(page_url,headers=headers)json_data=resp.json()data_lst = json_data['List']d = {}for data in data_lst:image_url_lst=exact_url(data)sProdName=parse.unquote(data['sProdName'])d[sProdName]=image_url_lstfor key in d:# 拼接路径   image/皮肤名称dirpath = os.path.join('image', key.strip(' '))if not os.path.exists(dirpath):os.mkdir(dirpath)# 下载图片并且保存for index, image_url in enumerate(d[key]):self.image_url_queue.put({'image_path':os.path.join(dirpath,'{}.jpg').format(index+1),'image_url':image_url})#消费者线程
class Customer(threading.Thread):def __init__(self,image_url_queue):super().__init__()self.image_url_queue = image_url_queuedef run(self):while True:try:image_obj=self.image_url_queue.get(timeout=10)request.urlretrieve(image_obj['image_url'],image_obj['image_path'])print(f'{image_obj["image_path"]}下载完成')except:break#启动线程的函数
def start():page_queue=Queue(30)image_url_queue=Queue(1000)for i in range(0,30):page_url=f'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage={i}&page={i}&iOrder=0&iSortNumClose=1&jsoncallback=&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1661612201998'# print(page_url)page_queue.put(page_url)#创建生产者线程对象for i in range(30):t=Producter(page_queue,image_url_queue)t.start()#创建消费者线程对象for i in range(10):t=Customer(image_url_queue)t.start()if __name__ == '__main__':start()


http://www.ppmy.cn/news/134398.html

相关文章

使用python实现高清壁纸批量下载

一.高清壁纸批量下载 1.概述 此代码是使用python多线程批量下载高清壁纸的一个小脚本,代码略为简陋. 此代码仅供学习与交流,请不要用于违法用途. import requests from lxml import etree import re import time from concurrent.futures import ThreadPoolExecutor, wait, AL…

android6.0原生壁纸,安卓6.0原生壁纸 androidM6.0自带高清壁纸下载

安卓系统6.0正式命名为Marshmallow棉花糖,有网友将安卓6.0系统自带壁纸提取出来,下面是androidM6.0自带高清壁纸下载资源。 安卓6.0原生壁纸 androidM6.0自带高清壁纸下载 android6.0自带壁纸下载地址: http://www.androidauthority.com/down…

微软 Windows 11 全套内置自带壁纸打包下载 - Win11 官方默认原生 4K 高清壁纸图片

全套 Windows 11 官方自带内置高清壁纸 这套 Windows 11 原生自带壁纸共有 32 张,风格简约细腻,整体的观感给人感觉是非常的舒服,微软选图片的功力还是不错的。分辨率包括 4K (3840x2400)、2K 和 1080P 等多种尺寸,图像清晰&…

最全4k,8k的高清壁纸网站免费下载

极简壁纸 https://bz.zzzmh.cn/#classify 部分壁纸展示: wallhaven https://wallhaven.cc/ wallpaper abyss https://wall.alphacoders.com/by_resolution.php?w7680&h4320&langChinese&page4 https://anime-pictures.net/?langzh_CN 持续更新中&…

wordpress微信精品高清壁纸下载小程序源码

介绍: 这套源码是互站上卖的挺火的一套基于WordPress的壁纸小程序。看群里面有人要就整来了。 【功能特点】 精美的壁纸展示页面,搜索喜欢的壁纸,下载壁纸需观看激励视频广告,看一次,可免费下一天,热门壁纸…

(已更新)WordPress微信壁纸小程序源码 高清壁纸下载小程序

源码介绍 WordPress微信壁纸小程序源码 高清壁纸下载小程序 【功能特点】 精美的壁纸展示页面,搜索喜欢的壁纸,看一次,可免费下一天,热门壁纸榜单,壁纸收藏、分享功能。【注意事项】 本程序需搭建在wordpress网站基础之…

WordPress微信壁纸小程序源码 高清壁纸下载小程序

源码介绍 WordPress微信壁纸小程序源码 高清壁纸下载小程序 【功能特点】 精美的壁纸展示页面,搜索喜欢的壁纸,下载壁纸需观看激励视频广告,看一次,可免费下一天,热门壁纸榜单,壁纸收藏、分享功能。【注意事…

python爬虫--王者荣耀高清壁纸下载

下面用的是普通的下载,因为图片过多,所以下载的速度可能会慢一点。 # 1、通过https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId2735&sVerifyCodeABCD&sDataTypeJSON&iListNum20&totalpage0&…