##一、前言

> 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面

预览一下桌面吧:

![](/contentImages/image/20180510/OVLlttekPNMS4Yove0r.jpg)

是不是看着这样的桌面也很带感,^_^ (学会这个技术,你可以爬取其他网站的类似图片,哄妹子专用,O(∩_∩)O哈哈~)

##二、程序实现

* 我们先去找一个靠谱的网站吧,自然而然的网站地址锁定在王者荣耀官网上,正好他给我们提供了壁纸页面 http://pvp.qq.com/web201605/wallpaper.shtml

![](/contentImages/image/20180508/ms1ydHIkpwceQ2gANIn.png)

一共14页

* 构建我们的目标数据URL

随便多翻几页,用firebug 等调试工具,观察一下我们的请求列表,找到其中特别明显的图片list api

![](/contentImages/image/20180508/plKAZOrfebwpjqSduLf.png)

展开以后,特别详细的URL

http://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=10&iOrder=0&iSortNumClose=1&jsoncallback=jQuery17106927574791770883_1525742053044&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1525742856493

问题简单了就:

urls = [ "http://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&page=%d&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage=0&iOrder=0&iSortNumClose=1&jsoncallback=jQuery1710881537174597735 6_1486710433816&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1486710458098" % (p) for p in range(0,14) ]

* 获取文档的内容:

这一步就比较简单了,requests 堪称写给人类的http 请求库,可以自己参看他的api 很强大,可以完成,任何手工在浏览器上的任何行为,用得好,你可以省掉很多的事儿,顺路贴一个api 链接吧 (http://www.python-requests.org/en/master/)[http://www.python-requests.org/en/master/]

def loadUrlContent(url):

return requests.get(u).text

* 解析文档内容 :

api 返回情况,大致如下: 是一个jsonp callback的返回

![](/contentImages/image/20180508/x8BFWhSfmosSVbNRp9w.png)

这种情况一般是callback后边对应了一个json对象,我们可以用python的 json 类库来解析:

> 解析数据千差万别,本文的数据相对简单,所以用了相对简单的处理方式:

## 这种解析数据的代码并不适用于所有的页面

def jsonContent(pageContent):

json_content = pageContent.split("(")[1].split(")")[0]

return json.loads(json_content)

>解析完成以后的一个json对象属性如下:

![](/contentImages/image/20180509/VTKv8n1ieEdAr0zSXbt.png)

查看json 对象内容必备: [https://www.json.cn/](https://www.json.cn/) 可以看到清晰的对象属性

很明显的,List 属性就是我们想要获取的壁纸对象了,然后,其中 sProdImgNo_1,2,3,4,5,6,7,8 中保存了,url 编码的图片url地址。

本实例为了演示我们只获取其中的 sProdImgNo_5 来做下载,大家可以根据需求做不同的遍历.

写一个简单的对象循环完成我们的子任务吧:

for item in pageJson['List']:

dealWithItem(item)

* 处理元素函数 , 下载文件图片:

观察发现图片url 是url编码好的地址: 我们可以用 urllib 的 unquote 方法转成原文:

获取的一个图片URL原文是这样的:

![](/contentImages/image/20180509/F8JsfVCkOl9usRCIFe5.png)

自行对比下,观测到的图片的真实地址如下:

![](/contentImages/image/20180509/HlQ2eDP5yRQsWwfSdxl.png)

然后,我们只需要简单的把 200 replace 成0 就ok 了。

下载文件,直接通过requests get url 保存成文件就ok啦。

##三、运行效果

* 最终展示下我们的成果吧:

![](/contentImages/image/20180509/ogYyZNagXoKunyJ3YSK.jpg)

##四、项目文件结构

![](/contentImages/image/20180510/nk7uz34z1rlJ6r1psHx.png)

python代码手机壁纸_python 爬取王者荣耀高清壁纸相关推荐

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

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

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

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

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

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

  4. python多线程爬取王者荣耀高清壁纸过程

    多线程与爬虫 目标url json中查找url 访问url 读取json 查看json的list数组 全部图片 粗暴的单线程获取 多线程执行 目标url 查看http://pvp.qq.com/web ...

  5. 如何爬取王者荣耀高清壁纸(详细分析教程)

    1.准备工作 Python 3.7 Python安装有requests模块 王者荣耀官网地址:https://pvp.qq.com/web201605/wallpaper.shtml### 2.网站分 ...

  6. 爬取王者荣耀高清皮肤

    爬虫中使用多线程爬虫是一种很常见的方式,可以提高爬取的效率,特别是生产者消费者模型也经常可以见到,今天刚好学习了这种模式,爬取下王者荣耀的高清壁纸,作为练习 import requests from ...

  7. python爬取王者荣耀高清图

    原理请看:Python?30行代码?爬取王者荣耀所有英雄皮肤图片?_易果啥笔的博客-CSDN博客 我稍微改了一下:因为王者这个herolist.json文件里的信息更新的不太及时,导致爬取出来的皮肤有 ...

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

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

  9. python爬虫爬取必应每日高清壁纸

    python爬虫爬取必应每日高清壁纸 一.简介 二.使用的环境 三.网页分析 1.分析网页每一页url形式以及总页数 2.网页重要信息收集 3.在源码中寻找所需信息的位置 四.代码实现 五.运行爬虫 ...

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

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

最新文章

  1. Install Package and Software
  2. webform登录操作中正则表达式运用
  3. stm32的can总线理解及应用——程序对应stm32f103系列
  4. Ubuntu终端远程连接计算机(Linux)
  5. 5 查询一个小时前_2021国考成绩查询系统登录入口
  6. TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS
  7. 武汉.NET俱乐部12月活动图片及课件下载
  8. React五——React-router
  9. 基于Java+MyEclipse+Socket+GUI的网络通讯录(C#可以参考为WinForm通讯录结构大体类似)
  10. Bootstrap 可视化编辑器summernote
  11. Eclipse中的Unicode编码如何转为中文?
  12. uni-app小程序SDK接入
  13. 如何在亿级数据中判断一个元素是否存在?
  14. 综合能源服务认证的定义,综合能源服务认证意义
  15. 掘金chrome插件安装失败怎么办?
  16. 绝对良心提供百度网盘的jdk1.8源码下载包含sun包的
  17. android miui连接开发者选项,(最详细)MIUI11系统的Usb调试模式在哪里开启的步骤
  18. Kotlin 笔记 纯属娱乐萌新大佬绕道
  19. Android学习——Shortcut
  20. java 打印详解_Java格式化输出printf()详解

热门文章

  1. 笔记本右侧键盘数字打不出来
  2. linux boot efi 大小,/boot/efi。
  3. 编号配置(组织编号、人员编号、SNRO)
  4. intel 服务器芯片型号怎么看,Intel CPU编号详解
  5. 51ditu、清华地图以及Google地图
  6. display几种常用的属性值
  7. JavaScript重写alert方法
  8. 初中英语语法(009)-动名词
  9. js怎么识别图片中的文字,js图片文字识别代码
  10. 视频图像的I帧、P帧、B帧详解