下面用的是普通的下载,因为图片过多,所以下载的速度可能会慢一点。


# 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=jQuery171015387338790761063_1587884222210&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1587884222349
# 可以获取到高清壁纸的url# 2、获取高清壁纸的url后,通过parse.unqutoe可以进行解码,然后将最后的200改为0 ,就可以得到真实的高清壁纸的图片了# 3.获取图片的url的地址中有一个参数page,通过修改page的值,可以进行翻页,默认page是从0开始的
import requests
from urllib import parse
from urllib import request
import os# 用来存放无法下载的链接
un_download = []# 设置请求头
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36','referer': 'https://pvp.qq.com/web201605/wallpaper.shtml'
}# 收集打不开链接的图片信息(将200替换成0的链接)
def un_download_url(image_name,image_url):un_download_info = {}un_download_info['name'] = image_nameoriginal_url = image_url.replace('/0','/200')un_download_info['original_url'] = original_urlun_download_info['curr_url'] = image_urlreturn un_download_info# 获取图片链接
def exact_image(data):image_urls = []for x in range(1,9):# 解析获取到的链接,高清的图片末尾是/0,所以要将200替换成0,防止url中间有200数值,所以用'/0'替换'/200'image_url = parse.unquote(data['sProdImgNo_%d'%x]).replace('/200', '/0')# image_url = parse.unquote(data['sProdImgNo_%d'%x])image_urls.append(image_url)return image_urls# 下载图片
def download(image_urls,image_name,dirpath):for index, image_url in enumerate(image_urls):try:request.urlretrieve(image_url, os.path.join(dirpath, "%d.jpg" % (index + 1)))print("%s下载完成!" % (image_name + image_url))except Exception as e:# 收集打不开的链接信息un_download_info = un_download_url(image_name, image_url)un_download.append(un_download_info)def main():page_url = '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={}&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1587884222349'file_num = 0# 从第1页到22页for i in range(0,22):print("第%d页"%(i+1))resp = requests.get(page_url.format(i),headers=headers)result = resp.json()datas = result['List']for data in datas:image_urls = exact_image(data)image_name = parse.unquote(data['sProdName']).replace("1:1","").strip()# 存放图片的文件夹名dirpath = os.path.join("image", image_name)try:# 创建对应的文件夹os.mkdir(dirpath)download(image_urls,image_name,dirpath)except FileExistsError as e:# 防止获取到的文件名有重复的,就在重复的文件名末尾加个2# 如果有三个以及三个以上重复的,重新写下面这一句代码os.mkdir(dirpath + '2')download(image_urls, image_name, dirpath+'2')file_num += 1return file_num# 2、只显示url# for image_url in image_urls:#     print('='*30)#     print(image_name)#     print(image_url)#     print('='*30)if __name__ == '__main__':file_num = main()print(un_download)print('共下载%d种图片'%file_num)

python爬虫--王者荣耀高清壁纸下载相关推荐

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

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

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

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

  3. python爬虫王者荣耀高清壁纸

    # run.py import re, os, time, json, requests from urllib.parse import unquote import concurrent.futu ...

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

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

  5. python爬虫王者荣耀高清皮肤大图背景故事通用爬虫

    wzry-spider python通用爬虫-通用爬虫爬取静态网页,面向小白 基本上纯python语法切片索引,少用到第三方爬虫网络库 这是一只小巧方便,强大的爬虫,由python编写 主要实现了: ...

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

    # CY3761 | 2021-11-04 11:45# 把请求事务等封装成函数 一步步进行 import json import os import time import urllib.parse ...

  7. 【第1篇】Python爬虫实战-王者荣耀高清壁纸下载

    目标网址:https://pvp.qq.com/web201605/wallpaper.shtml 目录 1.页面分析 2.程序源码 3.结果展示 1.页面分析 通过F12打开浏览器控制台,刷新一下页 ...

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

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

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

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

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

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

最新文章

  1. $.ajax() 方法的理解
  2. dmalloc用法快速入门
  3. 文献记录(part67)--基于决策树模型重用的分布变化流数据学习
  4. Linux Ubuntu终端“@”前后的含义及修改(修改用户名及主机名)【试用办法,部分不可行】
  5. 各种蕴含算法思想的DP - 3
  6. AI:初学者如何从零学习人工智能?看完你就懂了
  7. 输出一行星花 1110 java
  8. open函数返回-1_记录学习python的第3天-递归函数/文件操作
  9. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小
  10. vim学习笔记--代码折叠
  11. 《大话数据结构》读后总结(八)
  12. Anaconda3 + Python3.6 + PyTorch0.4.0 安装步骤
  13. FPGA中case语句4选1数据选择器
  14. android 音效,音效  |  Android 开源项目  |  Android Open Source Project
  15. JavaScript - 用户名表单验证
  16. 基于共振解调的轴承故障诊断方法总结(一)
  17. 美文:远方究竟有多远
  18. Distiller tutorial: Pruning Filters Channels
  19. 解决chrome自动填充白色背景(input:-internal-autofill-previewed)问题
  20. 一个SQL获取某股票连续上涨的天数

热门文章

  1. 如何用VBA实现格式刷的功能?
  2. 第二人生的源码分析(11)地面显示的实现
  3. vscode配置esp32开发环境:ESP-IDF VS Code Extension 没有 Using Existing Setup
  4. matlab 阻尼牛顿法
  5. [转载]北京的六条经典徒步线路
  6. 【STM32】开发板学习1 NUCLEO-L476RG:GPIO例程 点亮LED2灯
  7. (转)Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
  8. ckplayer只调用html,Ckplayer的安装及调用
  9. JFreeChart常用图表使用
  10. rocketmq获取消息id_贞炸了!上线之后,消息收不到了!