前期刷野最快的英雄lol手游(英雄联盟手游来了)
前期刷野最快的英雄lol手游(英雄联盟手游来了)我们不要只搜索中文就放弃,而是多次尝试别的方式!比如拼音、英文、unicode编码文本。可以用 在线转换工具,进行查看unicode编码于是我们可以进行全局搜索:全局搜索后,我们还是没搜到名字。其实,经常爬虫我们就会知道,网站的中文在某些特定网页源码中,可能是unicode编码。
英雄联盟手游于10.8 上午10点正式和大家见面了,大家都玩了吗?
这次上线一共上架了40位英雄!那么我们今天就来爬取这些英雄的名字和图片!
网址:https://lolm.qq.com/v2/champions.html
分析页面源码数据
其实不用搜索名字,我们都会发现,这是一个动态加载的网页。因为,在网站中,只有向下滑动,才会显示其他英雄的图片。
于是我们可以进行全局搜索:
全局搜索后,我们还是没搜到名字。
其实,经常爬虫我们就会知道,网站的中文在某些特定网页源码中,可能是unicode编码。
可以用 在线转换工具,进行查看unicode编码
我们不要只搜索中文就放弃,而是多次尝试别的方式!比如拼音、英文、unicode编码文本。
这里我用了拼音 和 unicode编码都搜索到了源头:
拼音搜索
编码搜索
但,这里显示的还是一堆看不懂的乱码。到底是不是呢?
我们来验证一下:
我们爬取下这个页面的源码,发现果然是真的。
解析数据包
既然我们获取了英雄名字和图片地址的源码,那么我们现在就来解析一下。
借助工具,我们很容易看到英雄的名字和图片地址。
写下代码:
# 要注意json属性
for i in hero_List['heroList']:
name = hero_List['heroList'][i]['name'] # 名字
img_url = hero_List['heroList'][i]['poster'] # 图片地址
print(name img_url)
img_data = requests.get(url=img_url headers=headers).content # 图片二进制
这样就打印出了每个英雄的名字和图片地址
下载保存图片
我们创建的目录保存下图片
完整代码如下:
import os
import requests
# 英雄联盟手游英雄爬取
# url = https://lolm.qq.com/v2/champions.html
# 创建文件夹
dirName = 'lol_img'
if not os.path.exists(dirName):
os.mkdir(dirName)
headers = {
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}
url = 'https://lolm.qq.com/v2/champions.html'
hero_List = requests.get(url='https://game.gtimg.cn/images/lgamem/act/lrlib/js/heroList/hero_list.js'
headers=headers).json()
for i in hero_List['heroList']:
name = hero_List['heroList'][i]['name'] # 英雄名字
img_url = hero_List['heroList'][i]['poster'] # 图片地址
img_data = requests.get(url=img_url headers=headers).content # 图片二进制
with open(dirName '/' name '.jpg' 'wb') as f:
f.write(img_data)
print(name ' 已保存!')