Python爬虫实战,requests模块,Python实现抓取王者荣耀全套皮肤

爬取王者荣耀英雄资料数据 https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/505/505-bigskin-4.jpg ---(大)https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/504/504-bigskin-1.jpg--直接修改。4.通过对地址的分析观察 发现只需要替换英雄的id即可下载对应的英雄的皮肤图片。3.由于在英雄列表页是观察不到英雄的皮肤数据 所以需要进入英雄的详情页去观察。 阅读详情

今天带大家爬取王者荣耀全套皮肤,废话不多说,直接开始~ (文末有福利哦)

开发工具

Python版本: 3.6.4

相关模块:requests模块;urllib模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

思路分析

1、打开官方王者荣耀壁纸网站

网站地址:https://pvp.qq.com/web201605/wallpaper.shtml

2、快捷键F12,调出控制台进行抓包

在这里插入图片描述

3、找到正确的链接并分析

在这里插入图片描述

4、查看返回数据格式

在这里插入图片描述
在这里插入图片描述

5、解析url链接

在这里插入图片描述

6、查看url内容是否是所需图片,发现其实是缩略图

在这里插入图片描述

7、那就去分析网站,随便点开一张壁纸,查看指定格式的链接

在这里插入图片描述

8、找到目标地址

在这里插入图片描述

9、分析目标链接和缩略图的链接区别

可以知道,将指定格式的缩略图地址后面200替换成0就是目标真实图片

代码实现

import os, time, requests, json, re
from retrying import retry
from urllib import parse
 
class HonorOfKings:
    '''
     This is a main Class, the file contains all documents.
     One document contains paragraphs that have several sentences
     It loads the original file and converts the original file to new content
     Then the new content will be saved by this class
    '''
    def __init__(self, save_path='./heros'):
        self.save_path = save_path
        self.time = str(time.time()).split('.')
        self.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&_=%s' % self.time[0]
 
    def hello(self):
        '''
        This is a welcome speech
        :return: self
        '''
        print("*" * 50)
        print(' ' * 18 + '王者荣耀壁纸下载')
        print(' ' * 5 + '作者: Felix  Date: 2020-05-20 13:14')
        print("*" * 50)
        return self
 
    def run(self):
        '''
        The program entry
        '''
        print('↓' * 20 + ' 格式选择: ' + '↓' * 20)
        print('1.缩略图 2.1024x768 3.1280x720 4.1280x1024 5.1440x900 6.1920x1080 7.1920x1200 8.1920x1440')
        size = input('请输入您想下载的格式序号,默认6:')
        size = size if size and int(size) in [1,2,3,4,5,6,7,8] else 6
 
        print('---下载开始...')
        page = 0
        offset = 0
        total_response = self.request(self.url.format(page)).text
        total_res = json.loads(total_response)
        total_page = --int(total_res['iTotalPages'])
        print('---总共 {} 页...' . format(total_page))
        while True:
            if offset > total_page:
                break
            url = self.url.format(offset)
            response = self.request(url).text
            result = json.loads(response)
            now = 0
            for item in result["List"]:
                now += 1
                hero_name = parse.unquote(item['sProdName']).split('-')[0]
                hero_name = re.sub(r'[【】:.<>|·@#$%^&() ]', '', hero_name)
                print('---正在下载第 {} 页 {} 英雄 进度{}/{}...' . format(offset, hero_name, now, len(result["List"])))
                hero_url = parse.unquote(item['sProdImgNo_{}'.format(str(size))])
                save_path = self.save_path + '/' + hero_name
                save_name = save_path + '/' + hero_url.split('/')[-2]
                if not os.path.exists(save_path):
                    os.makedirs(save_path)
                if not os.path.exists(save_name):
                    with open(save_name, 'wb') as f:
                        response_content = self.request(hero_url.replace("/200", "/0")).content
                        f.write(response_content)
            offset += 1
        print('---下载完成...')
 
    @retry(stop_max_attempt_number=3)
    def request(self, url):
        '''
        Send a request
        :param url: the url of request
        :param timeout: the time of request
        :return: the result of request
        '''
        response = requests.get(url, timeout=10)
        assert response.status_code == 200
        return response
 
if __name__ == "__main__":
    HonorOfKings().hello().run()

完整源代码已经打包好了,需要的朋友可以扫描下方二维码免费获取

运行结果

在这里插入图片描述

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的!

  • 学习时间相对较短,学习内容更全面更集中
  • 可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至CSDN官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

Python爬虫——王者荣耀皮肤拉取 文章目录Python爬虫——王者荣耀皮肤拉取资源地址HeroScrapy.py运行上面的代码即可注意点 Python爬虫——王者荣耀皮肤拉取 开门见山,话不多说 资源地址 英雄信息列表:http://pvp.qq.com/web201605/js/herolist.json 皮肤前缀地址:http://game.gtimg.cn/images/yxzj/img201606/skin/her... 阅读详情

相关推荐

python对英雄皮肤进行图片采集~

嗨喽~大家好呀,这里是魔王呐。

python56123的博客 1万+

python爬取王者荣耀所有皮肤

这是通过xpath爬取王者荣耀所有英雄的皮肤

weixin_44402079的博客 421

Python项目】——爬取王者荣耀皮肤

原作者:尚学堂 李老师学习视频来源:bilibili——王者荣耀皮肤爬取注:仅供自学者学习交流使用,侵权联系必删。

weixin_51658186的博客 2万+

Python爬虫——手把手教你爬取王者荣耀英雄皮肤

大家好!我是霖hero 大家知道目前最火的手游是哪个嘛,没错,就是王者荣耀,这款手游想必大家都听过或者玩过吧,里面有106个英雄,几百个英雄皮肤,今天我来手把手教你们把几百个皮肤爬取下来。 Python基础 我们先来讲一些Python基础知识,一是待会可能会用到这些Python基础知识,方便Python基础差的同学更好地理解,二是为了巩固基础,我们一直学下去,一定要回头看一看,回顾回顾基础。 基础好的可以直接跳过这一节。 Python内置函数zip zip() 函数用于将可迭代的对象作为参数,

霖hero 4837

使用Python爬虫】获取王者荣耀所有皮肤

最后可以通过上面的方法已经批量获取了所有英雄的数据,使用for方法批量去循环读取所有英雄皮肤,再封装成函数等方式。我这里也有写好,可以直接拿去使用,或者针对自己需求去优化。也可以封装成输入英雄名称,获取对应的所有皮肤

a861357276的博客 976

Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图

Python+Fiddler5带你爬取6000+高清王者荣耀cosplay图 写在前面 最近在玩蛇的时候发现一个抓包神器Fiddler,简直不要太好用,于是当作练手就把这软件给安排了,王者荣耀盒子一个很古老的软件,打开界面看到上次更新还是在2020年8月,可能制作者都放弃对他的维护了吧,不知道喜欢王者荣耀的小伙伴有没有人用过这软件呢?但是这不影响,毕竟是用来练手的东西,我们关注的还是有没有值得爬的东西,直到我看到了这个: 不得不说,这才是正经人该干的事情,坏笑😏~ 下面进入正文 工具准备 Python

yxn4065的博客 2万+

笔记--抓取王者荣耀盒子图片视频

此文章借鉴:https://blog.csdn.net/c406495762/article/details/76850843作者思路很新奇,所以学习测试了一下,可以成功,特意跟大家分享一下。准备工作需要用到工具fiddler抓包工具APP王者荣耀盒子下载fiddler之后设置一下参数 Tools&gt;options勾选这些HTTPS参数在Connections中设置如下,这里使用默认8888端...

moon的博客 844

王者荣耀爬虫爬取英雄头像

复制到pyhton代码response = request.urlopen("https://pvp.qq.com/web201605/js/herolist.json")中。运行成功后,打开文件所在位置即可找到爬取的图片。首先进入王者官方,找到“英雄资料”摁下F12进入控制台,找到请求网址。

做一位与众不同的吗喽 1250

Python通过requests模块实现抓取王者荣耀全套皮肤

目录开发工具环境搭建思路分析代码实现前言今天带大家爬取王者荣耀全套皮肤,废话不多说,直接开始~开发工具Python版本:3.6.4相关模块requests模块;urllib模块;以及一些Pytho… 目录 开发工具 环境搭建 思路分析 代码实现 前言 今天带大家爬取王者荣耀全套皮肤,废话不多说,直接开始~ 开发工具 python版本:3.6.4 相关模块requests模块; urllib模块; 以及一些Python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安

m0_59235945的博客 1187

Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢

前言在我们在爬取手机APP上面的数据的时候,都会借助Fidder来爬取。今天就教大家如何爬取手机APP上面的数据。环境配置1、Fidder的安装和配置下载Fidder软件地址:https://www.telerik.com/download/fiddler然后就是傻瓜式的安装,安装步骤很简单。在安装完成后,打开软件,进行如下设置:默认的8888端口2、手机的配置首先打开cmd,输入ipconfig...

weixin_34189116的博客 4644

王者营地 Token获取:从 SSL Pinning 绕过到 Frida 动态插桩

文章摘要 本文记录了通过Frida动态插桩技术绕过王者营地App的SSL Pinning防护,成功抓取英雄战力数据接口的技术过程。作者首先尝试使用Fiddler和HttpCanary抓包失败,发现应用采用了SSL Pinning技术拦截中间人攻击。随后选择Frida方案,详细介绍了环境搭建步骤,包括安装frida-tools、部署frida-server到手机设备、处理权限问题等关键环节。通过这一系列技术操作,最终成功获取了王者荣耀官方战力查询接口所需的UserID和Token参数,为后续调用官方API获取

yxn4065的博客 916

Python爬虫实战案例——王者荣耀皮肤抓取

就是因为图片是二进制数据,而前面的是json数据,那么现在获取的是图片,就要进行二次请求,进行.content。但我们放大仔细看发现,这个并不是我们的目标,因为它并不是最大,最高清的,那么到底在哪呢?我们要抓取皮肤其实就是相当于抓图片,那么像这种大网站,大批量的图片它基本上是在一个文件里面,那么我们首要目的就是要找到这个文件所在地,打开浏览器调试面板,进行刷新。唉,非常明显的高清无码大图片了吧,但仔细想想,我现在只是抓到了一张而已,但王者荣耀官网可是有非常多的,那我该如何进行批量抓取呢?

weixin_53707653的博客 7939

Python爬虫-实现批量抓取王者荣耀皮肤图片并保存到本地

本文是该专栏的第12篇,后面会持续分享python爬虫案例干货。本文以王者荣耀的英雄皮肤为例,用python实现批量抓取部英雄”的皮肤图片,并将图片“批量保存”到本地。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。注意,这里抓取的图片以皮肤海报图为例,长宽像素较大,非常清晰。通过本文的详细介绍,会让你轻松学会抓取各种图片的采集方法和思路。下面,跟着笔者直接往下看正文详细内容。(附带完整代码)上述url请自行解码即可,使用浏览器打开链接之后,直接使用...

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1544

Python爬虫之一:十几行代码下载王者荣耀所有皮肤

寻找皮肤图片地址 1 找到英雄列表 2 找到英雄皮肤地址 下载图片 1 英雄有几个皮肤 2 下载文件 起因:前两天在公众号上看到一篇文章内容就是爬取王者荣耀皮肤,但是内容太大概了,如果跟着他做肯定做不出来,所以我打算自己做。 之前接触过爬虫还是几年前爬取豆瓣电台的歌曲,那时候用的C++,json解析还要用第三方库,总之很麻烦。最近接触到了python,深深的感觉这门语...

C与Python实战 2万+

Python爬虫带你一键爬取王者荣耀英雄皮肤壁纸

观察到同一个英雄的皮肤图片 url 末尾 -{x}.jpg 从 1 开始依次递增,再来看看不同英雄的皮肤图片 url 是如何构造的。会发现, ename这个英雄的标识不一样,获取到的图片就不一样,由 ename 参数决定。王者荣耀这款手游,想必大家都玩过或听过,游戏里英雄有各式各样的皮肤,制作得很精美,有些拿来做电脑壁纸它不香吗。发现是乱码,但问题不大,双击这个 json 文件,将它下载下来观察,用编辑器打开可以看到。发现只有末尾的数字在变化,末尾的数字可以认为是该英雄的页面标识。

jindaima的博客 456
上一篇: 在家靠python爬虫兼职月入3w+:成年人的世界,钱是底气!
下一篇: 高效的Python爬虫框架有哪些?
田野猫咪
博客等级 码龄3年 5012粉丝 502原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值