12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】
作者:互联网
12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】
提示:本文代码只是为学习爬虫提供思路,真正想要爬取皮肤最好还是用我加工后的代码O(∩_∩)O
文章目录
一、效果展示
话不多说,上图
二、代码区
注意代码不能直接用,要建一个文件夹放皮肤图片,然后用文件夹路径替换掉下面这条中的'pf/',这样图片就都存在文件夹里了。
name='pf/'+str(id)+str(page)+".jpg"
import requests
lol1='https://game.gtimg.cn/images/lol/act/img/skin/big'
lol2='.jpg'
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0'}
for id in range(0,888):
for page in range(30):
url=lol1+str(id)+"00"+str(page)+lol2
h=requests.get(url=url,headers=header).content
name='pf/'+str(id)+str(page)+".jpg"
print(name)
with open(name,'wb') as fp:
fp.write(h)
三、原理详解
如果看到这说明你不是个单纯的白嫖党,想必是有bear来
首先要爬东西当然要引入requests模块
然后是去lol官网逛一逛~
资料库里就有我们要的皮肤哦
按F12,用金手指看看图片的路径在哪
好的,轻轻松松获(bai)取(piao)到图片的地址,打开看看。https://game.gtimg.cn/images/lol/act/img/skin/big1009.jpg 没错,就是咱们要的东西。再多看看安妮其他皮肤的地址,发现什么规律没有?
https://game.gtimg.cn/images/lol/act/img/skin/big1003.jpg
https://game.gtimg.cn/images/lol/act/img/skin/big1004.jpg
https://game.gtimg.cn/images/lol/act/img/skin/big1005.jpg
没错,只是改动了一个数字而已!再看看其他英雄的原皮地址:
https://game.gtimg.cn/images/lol/act/img/skin/big2000.jpg
https://game.gtimg.cn/images/lol/act/img/skin/big3000.jpg
https://game.gtimg.cn/images/lol/act/img/skin/big4000.jpg
没错,也只是改动了一个数字而已!那么我们就可以推测, 所有皮肤都是在/images/lol/act/img/skin/目录下的,第一位是英雄id,后三位是皮肤id,那么我们就可以暴力地遍历所有数字啦!
lol1='https://game.gtimg.cn/images/lol/act/img/skin/big'
lol2='.jpg'
这样把网址除数字部分拿出来,再循环用数字转str,用+连起来就能遍历大量网址了。
然后要准备一下咱们去请求资源的伪装:
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0'}
就是在F12的网络下刷新一遍,第一个GET请求右下角有一个User-Agent,把后面的复制过来赋值给header就行了。
然后捏,咱们最新的英雄 滚...咳咳,是格温,id号是887
那么直接简单粗暴,从0遍历到888,确保覆盖了所有英雄。
for id in range(0,888):
然后捏,咱们的皮肤最大id不超过20,我们就直接从0到30,确保覆盖了所有皮肤。
for page in range(30):
把id和page拼接起来,构成网址,别忘了中间还有两个’0‘。
url=lol1+str(id)+"00"+str(page)+lol2
有了网址,我们就可以下载数据咯,把图片的数据赋值给h
h=requests.get(url=url,headers=header).content
给他起个名字,加上之前创建的文件夹路径
name='pf/'+str(id)+str(page)+".jpg"
print(name)
最后打开这个文件,写进图片的数据,这样就可以了!
with open(name,'wb') as fp:
fp.write(h)
总结
u1s1,看着文件夹渐渐丰满起来,在边上打吧王者的时间,已经下(bai)载(piao)了近700张皮肤了!真香!你学废了吗!
标签:12,img,Python,内附,jpg,lol,str,skin,id 来源: https://blog.csdn.net/Roymasterpiece/article/details/117866889