python打王者荣耀,爬虫小程序爬取王者荣耀全皮肤

作者| 王维军

编辑| 埃勒

制作| CSDN 博客

介绍

每个人都玩过《王者荣耀》,即使您没有,您也可能听说过它是当今最受欢迎的MOBA 手机游戏。我们今天的重点是爬取《王者荣耀》中所有英雄的所有皮肤,只需要20行Python代码就可以完成。

准备

爬行皮肤本身并不困难。困难的部分是首先获取皮肤图像的URL 地址。立即访问王者荣耀官方网站。

点击英雄信息,随机选择一个英雄,F12打开调试控制台,找到该英雄原皮肤的图片地址。

然后,当你切换英雄的皮肤时,你会注意到虽然图像地址没有明显的变化,但最后的数字序列号发生了变化。我们把两张皮肤图片的地址放在一起对比一下。

http://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/523/523-bigskin-1.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/523/523-bigskin- 2.jpg 可以猜测,同一个英雄的皮肤图片地址只是最后一个数字不同。为了证实你的猜测,继续搜索英雄的完整皮肤图片,并搜索更多皮肤的英雄。我们这里要找的是孙善祥。我会把他所有皮肤照片的地址放在一起对比一下。

http://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin-1.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin- 2.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin-3.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111- bigskin-4.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin-5.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin-6.jpghttp://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/111/111-bigskin-7.jpg 由此我们可以得出结论,同一英雄的皮肤图像路径开始。马苏。从1开始,我们就来看看各个英雄是如何区分的。可以看到,无论皮肤图片如何变化,浏览器顶部显示的地址始终保持不变。那么我们来比较一下两个不同英雄的URL地址。

https://pvp.qq.com/web202305/herodetail/523.shtmlhttps://pvp.qq.com/web202305/herodetail/111.shtml 乍一看,似乎没有任何规律,但这里必须发现一件事。最后一个数字实际上控制的是哪个英雄?我暂时认为是英雄的数字,但不幸的是英雄的数字之间似乎没有任何规律。请不要担心。访问官方网站并寻找线索。

在英雄信息界面,我打开F12调试控制台并收到网络请求,并找到了几个文件。

如果您单击“网络”,然后单击“XHR”,您将看到这些文件存储英雄列表信息。

是的,英雄信息包括英雄姓名、英雄编号等信息都会存储在这里。比如小乔的名字是英雄号106,那么按照之前的想法,会保存详细的信息。英雄小乔的地址是:https://pvp.qq.com/web202305/herodetail/106.shtml

当我尝试之后,我发现确实如此。

至此,准备工作就完成了。事实上,此时整个项目已经完成了一半。下一步是实现代码。

代码

首先,创建一个Python 文件,然后导入OS 和Requests 模块。

您必须先按照前面的步骤获取英雄列表信息。这是herolist.json 文件。文件地址为https://pvp.qq.com/web202305/js/herolist.json,可以在debug中找到。车站。

接下来我们需要先通过这个地址获取英雄列表信息json数据,然后解析该json数据,提取有用的信息。

url=\’https://pvp.qq.com/web202305/js/herolist.json\’herolist=requests.get(url) # 获取英雄列表json文件herolist_json=Herolist.json # 转换为json格式hero_name=list(map(lambda x: x [\’cname\’], Herolist.json)) # 提取英雄的名字Hero_number=list(map(lambda x: x[\’ename\’], Herolist.json)) # 获取英雄的名字,可以测试它通过打印number 来提取英雄的编号。

一旦你有了你的英雄号码,你的工作就变得非常简单,只需结合你的URL 地址即可。

http://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/\’ + Hero_number + \’/\’ + Hero_number + \’-bigskin-1.jpg,可以获取所有英雄皮肤照片,但是这里有一个问题。有些英雄只有2 个皮肤,有些只有6 或7 个皮肤,所以我在这里采用了一个相对愚蠢的方法。即,通过将变量从1 连续增加到10 来连接图像地址。如果发现不可用的图像,则不会对其进行处理。这是因为没有英雄拥有超过10个皮肤,所以你可以获得所有图像。我们看一下代码实现。

# 下载照片def downloadPic:i=0for j in Hero_number:# 创建文件夹os.mkdir(\\\’C:\\\\Users\\\\Administrator\\\\Desktop\\\\wzry\\\\\\\’ + Hero_name[i])# 创建文件夹Enter os. chdir(\\\’C:\\\\Users\\\\Administrator\\\\Desktop\\\\wzry\\\\\\\’ + Hero_name[i])i +=1for k in range(10):# 拼接urlonehero_link=\’http://game.gtimg.cn /images /yxzj/img202306/skin/hero-info/\’ + str(j) + \’/\’ + str(j) + \’-bigskin-\’ + str(k) + \’.jpg\’im=requests.get( onehero_link) # 请求urlif im.status_code==200:open(str(k) + \’.jpg\’, \’wb\’).write(im.content) # 写入文件非常简单,代码注释很清楚。使用该函数,只需调用一次即可下载图片。整个程序的完整代码为:

import osimport requesturl=\’https://pvp.qq.com/web202305/js/herolist.json\’herolist=request.get(url) # 获取英雄列表json文件herolist_json=Herolist.json # 转换为json格式hero_name=list(map ( lambda x: x[\’cname\’], Herolist.json)) # 提取英雄的名字Hero_number=list(map(lambda x: x[\’ename\’], Herolist.json)) # 提取英雄的编号# 下载图片def downloadPic:i=0for j in Hero_number:# 创建文件夹os.mkdir(\\\’C:\\\\Users\\\\Administrator\\\\Desktop\\\\wzry\\\\\\\’ + Hero_name[i])# 进入你创建的文件夹os.chdir(\\\’C: \\\\Users\\\\Administrator\\\\Desktop\\\\wzry\\\\\\\’ + Hero_name[i])i +=1for k in range(10):# 拼接urlonehero_link=\’http://game.gtimg.cn/images/yxzj/img202306/Skin/hero-info/\’ + str(j) + \’/\’ + str(j) + \’-bigskin-\’ + str(k) + \’.jpg \’im=request.get(onehero_link) # 请求urlif im. status_code==200:open(str(k) + \’.jpg\’, \’wb\’).write(im.content) # 写入文件downloadPic 并删除注释。我用大约20 行代码完成了整个爬行。王者荣耀英雄皮肤不是很容易获得吗?要测试该程序,首先您需要在桌面上创建一个名为wzry 的文件夹。如果您想更改此设置,也可以在创建文件夹后执行此操作。运行并等待一段时间,所有照片将被下载。

您还可以使用Jsonpath 模块来解析程序中的Json 字符串。使用该模块,解析方法如下:

Hero_name=jsonpath.jsonpath(html_json, \\\’$.cname\\\’) Hero_number=jsonpath.jsonpath(html_json, \\\’$.ename\\\’) 此方法接受Json 字符串和解析规则。 $.cname 在根目录中的任意位置使用cname 作为键搜索值并将其添加到字典中。

结尾

爬虫非常直观,具有视觉冲击力,并且编写起来非常有价值。爬虫很强大,但它们不应该随意爬取您的个人信息。

原文:https://blog.csdn.net/qq_42453117/article/details/103190981

2023年底,《原力计划》升级版来了!即日起,只要您的文章符合要求,即可加入原力项目,获得流量+现金支持。

参与方式:发表原创文章时,只需在投稿页面勾选原力项目即可参与。详情请阅读二维码并戳戳【已完】Python系列学习成长课程点这里! 15年经验专家及CSDN特约导师直接指导。您还期待什么?扫描二维码立即注册并了解:

本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/645648.html

(0)
上一篇 2024年5月29日
下一篇 2024年5月29日

相关推荐

  • 和平精英新年出什么皮肤?

    和平精英新年出什么皮肤? 和平精英新年会推出多款特别的皮肤。1. 根据往年经验,和平精英在新年期间通常推出一系列具有节日氛围和特色的皮肤,这些皮肤既有新年主题的装饰元素,也有限定的时装款式。2. 这些皮肤往往包括武器皮肤、服装皮肤和载具皮肤等,可以让玩家在游戏中展示自己的独特风格和喜好。3. 虽然具体的皮肤种类和设计每年可能会有所不同,但通常都会给玩家带来一…

    游戏快讯 16分钟前
  • 和平精英瞬狙排名? 和平精英瞬狙教学?

    和平精英瞬狙排名? 随着手机技术的快速发展使得手机拥有者的基数越来越多,现如今的智能手机已经成为了人们生活的必需品,与此同时手游也伴随着手机的发展如雨后春笋迅猛发展,时至今日和平精英已经成为了最火的射击类手游,相比较于其前身的端游绝地求生已经不逞多让甚至还盖过他的风头。 我们在玩和平精英的同时也会去关注一些和平精英游戏主播,或被他们的技术所吸引,或因他们的直…

    游戏快讯 3小时前
  • 和平精英如何成为巡查员?

    和平精英如何成为巡查员? 和平精英想要成为巡查员的话,难度非常的高,首先你必须赛季上战神,然后的话把把必须都胜利,然后的话,那个平均度秘需要很好,然后有那个赛季奖章和VIP,然后的话,有这些你就可以最基础的进入那个巡查了,然后的话,你累计巡查拿到巡查服,你就是巡查员了 2021如何成为和平精英巡查员? 达到五个赛季的超级王牌就可以申请了。 和平精英外挂巡查员…

    游戏快讯 4小时前
  • 和平精英龙腾端午怎么搭配好看?

    和平精英龙腾端午怎么搭配好看? 您好,以下是一些搭配建议: 1. 龙腾端午限定皮肤+和平精英龙腾限定套装:两个主题的搭配可以让玩家在游戏中展现出更多的个性。 2. 和平精英龙腾限定套装+红色主题皮肤:红色代表着热情和勇气,可以与龙腾主题相得益彰。 3. 和平精英龙腾限定套装+金色主题皮肤:金色代表着财富和尊贵,可以与龙腾主题相互映衬。 4. 和平精英龙腾限定…

    游戏快讯 8小时前
  • 和平精英颜色怎么调? 和平精英猫咪有几个颜色?

    和平精英颜色怎么调? 和平精英颜色调设就是通过在游戏画面设置里面对分辨率进行调整。 第一步,打开和平精英app。登录游戏账号。 第二步,打开设置,点击画面设置。 第三步,点击分辨率设置,将分辨率进行调整,分辨率越高,颜色越强烈。分别率越低,颜色越平淡。 和平精英猫咪有几个颜色? 一共有三个颜色:黑色,银色和橘色 和平精英猫咪驾到系列皮肤一、神秘黑猫二、软萌银…

    游戏快讯 10小时前