目标网址:https://pvp.qq.com/web201605/wallpaper.shtml

目录

1、页面分析

2、程序源码

3、结果展示


1、页面分析

通过F12打开浏览器控制台,刷新一下页面,通过依次查看,可以找到页面请求请求地址

 由于返回的数据不是标准的JSON格式我们需要对url进行简化处理,最终得到url地址为:

https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?iTypeId=2&sDataType=JSON&iListNum=20&page=1&iActId=2735

请求这个url地址就可以得到一个标准的JSON数据格式,其中page表示当前页码,iListNum表示每页展示多少条数据。

我们再来分析这个JSON,通过页面源码可以找到这段代码

说明:

sProdImgNo_2对应的图片分辨率:1024x768

sProdImgNo_3对应的图片分辨率:1280x720

下面依次类推……

我们以sProdImgNo_2的值举例:

http%3A%2F%2Fshp%2Eqpic%2Ecn%2Fishow%2F2735072812%2F1627447964%5F84828260%5F29462%5FsProdImgNo%5F2%2Ejpg%2F200

我们对该地址进行url解码之后,发现

http://shp.qpic.cn/ishow/2735080511/1628133281_84828260_9817_sProdImgNo_2.jpg/200

这个地址是压缩图片地址

http://shp.qpic.cn/ishow/2735080511/1628133281_84828260_9817_sProdImgNo_2.jpg/0

这个是真实的图片地址

如何找到真实地址,简单就是把url地址末尾的200改为0即可。

至此页面请求分析完成。

2、程序源码

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: YangPC
@QQ:327844761
@微信公众号:ewbang
"""
import requests
from urllib import parse
import osheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}def func(page=1):url = f'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?iTypeId=2&sDataType=JSON&iListNum=20&page={page}&iActId=2735'response = requests.get(url=url, headers=headers).json()# 总页数iTotalPages = int(response['iTotalPages'])# 列表数据img_list = response['List']print(f"正在爬取第{page}页的数据".center(100, '*'))for img_info in img_list:# 图片名称img_name = parse.unquote(img_info['sProdName']).strip()# 图片地址sProdImgNo_2 = img_info['sProdImgNo_2']save(img_name, sProdImgNo_2, "1024x786")sProdImgNo_3 = img_info['sProdImgNo_3']save(img_name, sProdImgNo_3, "1280x720")sProdImgNo_4 = img_info['sProdImgNo_4']save(img_name, sProdImgNo_4, "1280x1024")sProdImgNo_5 = img_info['sProdImgNo_5']save(img_name, sProdImgNo_5, "1440x900")sProdImgNo_6 = img_info['sProdImgNo_6']save(img_name, sProdImgNo_6, "1920x1080")sProdImgNo_7 = img_info['sProdImgNo_7']save(img_name, sProdImgNo_7, "1920x1200")sProdImgNo_8 = img_info['sProdImgNo_8']save(img_name, sProdImgNo_8, "1920x1440")# 下一页if page < iTotalPages:func(page + 1)# 保存图片到目录
def save(img_name, url, size):# 找到真实的文件路径url = parse.unquote(url).replace("/200", "/0")# 文件保存路径path = os.getcwd() + f'\\{img_name}\\'# 如果目录不存在就创建目录if not os.path.exists(path):os.makedirs(path)try:with open(f"{path}{img_name}_{size}.jpg", 'wb') as f:f.write(requests.get(url).content)print(f"{img_name}_{size}.jpg,下载成功。")except Exception as e:print(f"{img_name}_{size}.jpg,下载失败。")passif __name__ == '__main__':func()

3、结果展示

【第1篇】Python爬虫实战-王者荣耀高清壁纸下载相关推荐

  1. python爬虫--王者荣耀高清壁纸下载(多线程)

    下面的代码是采用多线程的生产者消费者模式,下载速度比之前文章的普通下载快一点. 普通下载的链接:python爬虫–王者荣耀高清壁纸下载 代码在下载方面是没有问题的,可以直接运行,就是在收集打不开链接的 ...

  2. python 爬取王者荣耀高清壁纸

    代码地址如下: http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  3. python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载

    绪论 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.python是一种跨平台的计算机程序设计语言.是一种 ...

  4. python爬取王者_python 爬取王者荣耀高清壁纸

    一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 预览一下桌面吧: 是不是看着这样的桌面也很带感,_ (学会这个技术,你可以爬取其他网站的类似图片 ...

  5. python爬虫练习高清壁纸【王者荣耀高清壁纸】python爬虫

    python爬虫练习高清壁纸[王者荣耀高清壁纸] 仅做练习使用,各位小伙伴不用乱来!!! 现成的代码,直接拿走研究,已经精简了自行美化 页面自己去分析分析 ,学习效果更佳. import reques ...

  6. 爬虫 | 王者荣耀高清壁纸-多线程

    # CY3761 | 2021-11-04 18:23 import json import os import queue import time import urllibimport reque ...

  7. Python爬虫实例 wallhaven网站高清壁纸爬取。

    文章目录 Python爬虫实例 wallhaven网站高清壁纸爬取 一.数据请求 1.分析网页源码 2.全网页获取 二.数据处理 1.提取原图所在网页链接 2.获取高清图片地址及title 三.下载图 ...

  8. python爬虫之抓取高清壁纸

    对于很多电脑玩家喜欢给自己电脑装饰精美的壁纸,但是碍于图片大小清晰度等原因无法找到合适的,今天我就利用爬虫技术手段,现实高清壁纸抓取,需要的小伙伴可以一起过来看看! # coding=utf-8imp ...

  9. Python多线程爬虫之二:爬取王者荣耀高清壁纸(多线程)

    一.项目分析 1.查询爬取网址 robots 权限 1.王者荣耀官网:https://pvp.qq.com/ 2.访问王者荣耀官网 rbots 权限: https://pvp.qq.com/robot ...

最新文章

  1. 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
  2. 【Java进阶】初识SpringCloud
  3. Effective Java之当心字符串连接的性能(五十一)
  4. web开发课程,HTML常用的五种标签,附赠课程+题库
  5. IE浏览器兼容性处理与提示
  6. QT5开发及实例学习之十一Qt5文件操作功能
  7. spring整合应用安全框架Shiro
  8. MySQL怎么建两个table_在MySQL中使用带有两个表的UNION的CREATE TABLE AS语句
  9. 附加:下半部分sql语句 区/县(数据表)
  10. ddns动态域名注册
  11. 隐私泄露距离你我有多远?APP扩大个人隐私收集,增大隐私保护难度
  12. 《道德经》新解(上篇)
  13. AtCoder Beginner Contest 266(C- G)「判凸包」「dp」「期望」「基环树」「组合数」
  14. 仿Mac程序坞放大动画
  15. 京东商品详情页技术实现
  16. 台式计算机截图快捷键,电脑截屏的快捷键是什么
  17. 使用IText画复杂布局的页面
  18. 帝国cms如何安装php模板,[帝国CMS教程] 新版帝国CMS整站源码安装说明 数据恢复教程(图文教程)...
  19. 怎么用生活照制作一寸证件照片
  20. Sdwan关于视频监控

热门文章

  1. 【linux】暂时解决sis m672(神舟F4000 D9) linux驱动 宽屏分辨率的问题?
  2. 基姆拉尔森星期计算公式
  3. 腾讯企业邮箱外域邮件发送失败原因及其解决方案
  4. 通过js跳转url下载包含中文的文件乱码问题解决方案(java)
  5. 解决页面上JS文件加载过慢问题
  6. 美团搜索中查询改写技术的探索与实践
  7. 霍强:创新研究到底应该怎么做?
  8. 2021高值人才职业发展洞察:连接、信任与赋能
  9. 2021年品牌CDP与营销数字化转型报告:从自建数据资产到消费者深度运营
  10. 【报告分享】2020新零售直播活力报告.pdf(附下载链接)