Python3怎么爬取英雄联盟所有英雄皮肤


这篇文章将为大家详细讲解有关Python3怎么爬取英雄联盟所有英雄皮肤,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。打开英雄联盟官网,点击游戏资料,继续按F12,按F5刷新,就会发现有一个champion.js文件,复制这个js文件的地址.和王者荣耀不同,这个是js而王者是json比较好处理。js中有英雄的编号和名字,将keys中的数据拿出来通过requests的get方法获取到响应的内容,pat_js是正则的规则,compile函数将包含的正则表达式的字符串创建模式对象,直接调用findall方法。返回的就是匹配的字串以列表的形式显示。eval将其转换为字典def path_js(url_js): res_js = requests.get(url_js, verify= False).content html_js = res_js.decode(“gbk”) pat_js = r'”keys”:(.*?),”data”‘ enc = re.compile(pat_js) list_js = enc.findall(html_js) dict_js = eval(list_js[0]) print(dict_js)——————————————————————————————————–在页面中点开英雄资料,没有英雄的皮肤url,需要右键,在新标签页打开,获取到连接http://ossweb-img.qq.com/images/lol/web201310/skin/big266000.jpg根据获取到的链接分析,big后前三个数字代表英雄的编号,后三个代表皮肤的个数,根据此来拼接获取皮肤图片的链接。每个英雄的皮肤不超过20个,以此来循环获取拼接。(获取的链接会有大量的没有响应的链接)def path_url(dict_js): pic_list = [] for key in dict_js: for i in range(20): xuhao = str(i) if len(xuhao) == 1: num_houxu = “00” + xuhao elif len(xuhao) == 2: num_houxu = “0” + xuhao numStr = key + num_houxu url = r’http://ossweb-img.qq.com/images/lol/web201310/skin/big’ + numStr + ‘.jpg’ pic_list.append(url) print( 香港云主机pic_list) return pic_list链接获取到之后,开始根据链接来下载皮肤先生成文件的保存路径”’根据字典的value值获取英雄名字,将其作为文件名和保存路径”’def name_pic(dict_js, path): list_filePath = [] for name in dict_js.values(): for i in range(20): file_path = path + name + str(i) + ‘.jpg’ list_filePath.append(file_path) print(list_filePath) return list_filePath接下来就是下载图片,将图片写入文件。(解决大量没有响应的链接)还是通过requests的get方法获取 响应,如果响应的text的内容是404,则结束本次循环,如果不是则将该图片写入文件保存。这样就不会下载大量的不能打开的空图片def writing(url_list, list_filePath): try: for i in range(len(url_list)): res = requests.get(url_list[i], verify=False) if ‘404 page not found’ in res.text: print(“该英雄皮肤下载完毕”), i continue with open(list_filePath[i], “wb”) as f: f.write(res.content) except Exception as e: print(“下载图片出错,%s” % (e)) return False获取到996个皮肤至此,皮肤获取完毕。当然还可以优化,可以尝试使用多线程改进该程序,图片太多,单线程过慢。还有皮肤链接的生成问题,考虑是否有更好的解决办法,不会去生成大量无用的链接。程序会去请求这些无用的链接,造成大量资源浪费。关于Python3怎么爬取英雄联盟所有英雄皮肤就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: Dubbo进入Apache以及MongoDB支持ACID事务的发布信息是怎样的

这篇文章给大家介绍Dubbo进入Apache以及MongoDB支持ACID事务的发布信息是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴, 香港云主机希望对大家能有所帮助。软件方面都有哪些重大更新呢?我们一起来看看吧。1.Dubbo通过投票正式进入Apac…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/11 17:26
下一篇 08/11 17:26

相关推荐