初次爬虫 您所在的位置:网站首页 王者营地通过id查陌生人皮肤 初次爬虫

初次爬虫

2024-07-01 19:43| 来源: 网络整理| 查看: 265

最近在学习爬虫,虽然初涉不深,但想找些简单的例子来尝试,看见网上有爬取王者荣耀皮肤的例子,对于王者迷来说,这是一个不能抵制的诱惑,所以借鉴了别人的程序加上自己的见解写下爬取程序,也写下这篇博客记录一下自己初次的成果。

想要爬取图片,就要有该图片的地址,这里我们去王者荣耀官方的的网站去查询能爬取皮肤地址,这里给出链接:https://pvp.qq.com/,然后我们可以找到这个位置:在这里插入图片描述 再点击那个更多,即可进入英雄皮肤的界面: 在这里插入图片描述 这里我是用的是谷歌浏览器,我们可以点击鼠标右键的检查或者是F12键,调处网页的代码,我们再调处Network的界面,在这里插入图片描述 对于没有出现herolist.json的,可以刷新页面,在这里插入图片描述 我们随意点开两个json的文件中的一个,然后查看它headers下的url地址,复制它的url地址,然后写下如下代码:

import requests url = 'https://pvp.qq.com/web201605/js/herolist.json' response = requests.get(url) #向url对应的服务器发送对应的get请求,然后获得对应的响应,response中包含 #服务器返回的相应的资源 heroList_json = response.json() #转为json的格式 print(len(heroList_json)) #英雄总数量 print(heroList_json) #打印结果

我们运行看结果: 在这里插入图片描述 英雄101个,这是正确的,爬取的目标没有错,然后提取的资源的json的格式也在结果中看得到,就包括ename:英雄编号,cname:英雄名称,skin_name:皮肤名称。

我们再找到皮肤的地址,比如http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/533/533-bigskin-2.jpg,我们查询可以发现皮肤的地址的前缀基本一样,就是http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/,533就是图片的英雄编号,bigskin是共有的,而数字2就是该英雄所拥有的第几个皮肤,知道地址的组成结构,我们就可以写出代码:

import os hero_dir='D:\spider\photo' if not os.path.exists(hero_dir): os.mkdir(hero_dir) #创建存储的文件,判断是否存在,不存在就创建,自己可以更改 for m in range(len(heroList_json)): hero_num = heroList_json[m]['ename'] #获取英雄编号 hero_name = heroList_json[m]['cname'] #获取英雄名称 skin_names = heroList_json[m]['skin_name'].split('|') #根据皮肤名分割成皮肤列表 number = len(skin_names) #皮肤数量 for i in range(1,number+1): #遍历每一个图片网址 url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' url_photo = url + str(hero_num) + '/' +str(hero_num) + '-bigskin-' +str(i) + '.jpg' photo = requests.get(url_photo).content #获取图片 with open('photo/'+str(hero_name)+'-'+str(skin_names[i-1])+'.jpg','wb') as f: f.write(photo) #创建文件并写入文件

整理两段代码点击运行,在相应的photo文件中会出现图片,来放图片:在这里插入图片描述 在这里插入图片描述 当然网上说可以加入多进程下载爬取,目前还不会,相信日后可以掌握这门技巧,也希望这篇博客可以给大家带来热趣。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有