快捷搜索:  汽车  科技

前期刷野最快的英雄lol手游(英雄联盟手游来了)

前期刷野最快的英雄lol手游(英雄联盟手游来了)我们不要只搜索中文就放弃,而是多次尝试别的方式!比如拼音、英文、unicode编码文本。可以用 在线转换工具,进行查看unicode编码于是我们可以进行全局搜索:全局搜索后,我们还是没搜到名字。其实,经常爬虫我们就会知道,网站的中文在某些特定网页源码中,可能是unicode编码。

前期刷野最快的英雄lol手游(英雄联盟手游来了)(1)

英雄联盟手游于10.8 上午10点正式和大家见面了,大家都玩了吗?

这次上线一共上架了40位英雄!那么我们今天就来爬取这些英雄的名字和图片!

网址:https://lolm.qq.com/v2/champions.html


分析页面源码数据

前期刷野最快的英雄lol手游(英雄联盟手游来了)(2)

其实不用搜索名字,我们都会发现,这是一个动态加载的网页。因为,在网站中,只有向下滑动,才会显示其他英雄的图片。

于是我们可以进行全局搜索:

前期刷野最快的英雄lol手游(英雄联盟手游来了)(3)

全局搜索后,我们还是没搜到名字。

其实,经常爬虫我们就会知道,网站的中文在某些特定网页源码中,可能是unicode编码

可以用 在线转换工具,进行查看unicode编码

前期刷野最快的英雄lol手游(英雄联盟手游来了)(4)

我们不要只搜索中文就放弃,而是多次尝试别的方式!比如拼音、英文、unicode编码文本。

这里我用了拼音unicode编码都搜索到了源头:

前期刷野最快的英雄lol手游(英雄联盟手游来了)(5)

拼音搜索

前期刷野最快的英雄lol手游(英雄联盟手游来了)(6)

编码搜索

但,这里显示的还是一堆看不懂的乱码。到底是不是呢?

我们来验证一下:

前期刷野最快的英雄lol手游(英雄联盟手游来了)(7)

我们爬取下这个页面的源码,发现果然是真的。


解析数据包

既然我们获取了英雄名字和图片地址的源码,那么我们现在就来解析一下。

前期刷野最快的英雄lol手游(英雄联盟手游来了)(8)

借助工具,我们很容易看到英雄的名字和图片地址。

写下代码:

# 要注意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 ' 已保存!')

前期刷野最快的英雄lol手游(英雄联盟手游来了)(9)

猜您喜欢: