python视频教程栏目精炼介绍如何爬取全英雄皮肤。
免费推荐:python视频教程
距离上次写爬虫文章已经过了许久了,之前写过一篇20行Python代码爬取王者荣耀全英雄皮肤
,反响强烈,其中有很多同学希望我再写一篇针对英雄联盟官网的皮肤爬取,但苦于事情繁多,便一拖再拖,一直拖到了现在,那么本篇文章我们就一起来学习一下如何爬取英雄联盟全英雄皮肤。
爬取代码非常简单,从上到下可能只需要写30行左右就能完成,但重要的是分析过程,在此之前,我们先来了解一下本篇文章需要用到的模块。
requests模块介绍
首先是requests模块,这是一个模拟浏览器请求的模块,我们可以通过它来获取网页上的信息,比如百度:
import requests url = 'http://www.baidu.com'response = requests.get(url)print(response.text)
运行结果:
通过get
函数就能够向指定参数的url发送请求,得到的response对象中封装了很多响应的信息,其中的text
即为响应内容,注意到获取的内容里有乱码,这是编解码不一致造成的,只需先获取二进制数据,然后重新解码即可:
import requests url = 'http://www.baidu.com'response = requests.get(url)print(response.content.decode())
运行结果:
json模块
json模块可以对json字符串和Python数据类型进行相互转换,比如将json转换为Python对象:
import json json_str = '{"name":"zhangsan","age":"20"}'rs = json.loads(json_str)print(type(rs))print(rs)
使用loads
函数即可将json字符串转为字典类型,运行结果:
<class 'dict'> {'name': 'zhangsan', 'age': '20'}
而若是想将Python数据转为json字符串,也非常简单:
import json str_dict = {'name': 'zhangsan', 'age': '20'}json_str = json.dumps(str_dict)print(type(json_str))print(json_str)
通过dumps
函数即可将Python数据转为json字符串,运行结果:
<class 'str'> {"name": "zhangsan", "age": "20"}
准备工作
前面介绍了两个模块,通过这两个模块我们就能够完成这个程序了。
在正式开始编写代码之前,我们首先需要分析数据来源,来到官网:https://lol.qq.com/main.shtml,往下拉找到英雄列表:
我们随意点击一个英雄进去查看:
在皮肤图片上右键点击检查:
这样就找到了这个皮肤的url,我们再选择第二个皮肤,看看它的url:
我们将安妮所有皮肤的url全部拿出来看看:
https://game.gtimg.cn/images/lol/act/img/skin/big1000.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1001.jpg https://game.<b>本文来源gao@!dai!ma.com搞$$代^@码!网</b>gtimg.cn/images/lol/act/img/skin/big1002.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/big1006.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1007.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1008.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1009.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1010.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1011.jpg https://game.gtimg.cn/images/lol/act/img/skin/big1012.jpg