多线程下载王者荣耀高清壁纸(过程超详细)

文章分为单线程和多线程两个部分,选择单线程一个一个下载速度会很慢,多线程下载可以明显提升速度。但先用单线程写出代码,再在此基础上改动成多线程,思路会更加清晰,对初学者也更加友好!

单线程下载王者荣耀壁纸

对界面的了解

进入王者荣耀官网https://pvp.qq.com/在游戏资料下点击游戏壁纸进入壁纸界面
在这里插入图片描述
下滑观察一共有页24页
在这里插入图片描述右键检查发现图片都在<div id =“Work_List_Container_267733”中,下面的每一个<div class="class="p_newhero_item"代表一种图片
在这里插入图片描述
但这些图片并不在源代码中,而是保存在worklist……的json文件中,蓝色的部分才是真实的url
在这里插入图片描述
Response里存在着json内容,用json解析器看一下(注意这里需要把开头的jQuery17104507762352752318_1610428368416(和结尾的)去掉,不然解析会出错)
在这里插入图片描述

单线程代码如下:

# 1、通过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=0&page=0&iOrder=0&iSortNumClose=1&jsoncallback=jQuery17109837407810303742_1610418917807&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1610418918008
# 可以获取到高清壁纸的url
# 2、获取到高清壁纸的url后,通过parse.unquote可以进行解码,然后将最后的200变成0,就可以得到真实的高清壁纸图片了
# 3、获取图片的url中有一个page参数,通过修改page的值可以进行翻页,默认page是从0开始的
# 4、page只有24页从0到23

import requests
from urllib import parse
from urllib import request
import os

headers = {
   
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36","cookie": "RK=/OpZ4Njjsp; ptcz=394043015c564423726c920b11083ee23442f2df97f4f143dc6951cbe15e63ef; pgv_pvi=6714924032; Qs_lvt_323937=1610418648; Qs_pv_323937=2275171914401574400; LW_sid=n1G6C170G4V148R6F5T9G635c6; LW_uid=z116s1w0O4K198w6j5q9P6F5I9; eas_sid=H116U1I0p4J1P8W6459966S7g1; pgv_info=ssid=s2693756474; pgv_pvid=7928325688; pvpqqcomrouteLine=index_wallpaper_wallpaper_wallpaper_wallpaper"

}  # 使用代码是需要换用你浏览器的user-agent和cookie

def extract_images(data): # 对8种分辨率的图片url进行解码
    image_urls = []
    for x in range(1,9):
        img_url = parse.unquote(data['sProdImgNo_%d'%x]).replace("200", "0")
        image_urls.append(img_url)
    return image_urls


def main():
    page_url &#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值