12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

提示:本文代码只是为学习爬虫提供思路,真正想要爬取皮肤最好还是用我加工后的代码O(∩_∩)O


 

文章目录

 


 

一、效果展示

话不多说,上图

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

 

二、代码区

注意代码不能直接用,要建一个文件夹放皮肤图片,然后用文件夹路径替换掉下面这条中的'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官网逛一逛~

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

资料库里就有我们要的皮肤哦

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

按F12,用金手指看看图片的路径在哪

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

好的,轻轻松松获(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'}

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

就是在F12的网络下刷新一遍,第一个GET请求右下角有一个User-Agent,把后面的复制过来赋值给header就行了。

然后捏,咱们最新的英雄 滚...咳咳,是格温,id号是887

12行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】

那么直接简单粗暴,从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行代码拿下所有lol皮肤!!Python超简单爬虫【内附详细教学 】


上一篇:Python爬虫之王者荣耀皮肤


下一篇:linux 中fcitx输入法字体太小解决方案