python爬取英雄联盟手游的全英雄皮肤

  • 前言
  • 分析页面
  • 具体代码
    • 下载工具类
    • 获取英雄列表的每个英雄
    • 获取英雄皮肤链接并下载
    • 完整代码
  • 成果
  • 总结

前言

近期这个鸽了好久的英雄联盟手游终于上线了,虽然博主不是英雄联盟端游玩家,但看到这个游戏上线还是超级开心的,受到了一些博主爬王者荣耀皮肤的启发,我们来试试爬英雄联盟的皮肤图片吧。

分析页面

来到英雄联盟手游的官网,我们来看看这个英雄列表的展示形式吧

我们发现所有的英雄都是在一个li标签之下,那么现在的目标就是获取所有的li标签就可以,来写一手xpath

这就直接拿到了,接下来那就是点击进入英雄详情页了,以盖伦为例,来到下图页面

我们的目标是想要拿到黑色箭头指向的图片,还是老样子,打开f12看看页面结构

然后我们发现原来这几个皮肤图片都是存放在class为“skins-preview-item”的div中,这就很简单了,拿到链接就完事了
xpath如下

整个流程我们就了解了,那接下来就是快乐的代码过程了

具体代码

下载工具类

import os
from concurrent.futures.thread import ThreadPoolExecutorimport requests
import timedef createFolder(src):os.makedirs(src)def downloadFile(name, url):try:headers = {'Proxy-Connection': 'keep-alive'}r = requests.get(url, stream=True, headers=headers)print("=========================")print(r)length = float(r.headers['Content-length'])f = open(name, 'wb')count = 0count_tmp = 0time1 = time.time()for chunk in r.iter_content(chunk_size=512):if chunk:f.write(chunk)  # 写入文件count += len(chunk)  # 累加长度# 计算时间 两秒打印一次if time.time() - time1 > 2:p = count / length * 100speed = (count - count_tmp) / 1024 / 1024 / 2count_tmp = countprint(name + ': ' + formatFloat(p) + '%' + ' Speed: ' + formatFloat(speed) + 'M/S')time1 = time.time()f.close()return 1;except:print("出现异常")return 0;def formatFloat(num):return '{:.2f}'.format(num)if __name__ == '__main__':# 初始化线程池# downloadFile('D://file//photo//hd.jpg',#              'https://browser9.qhimg.com/bdr/__85/t01753453b660de14e9.jpg')createFolder(r"E:\file\lol\1")

获取英雄列表的每个英雄

 heros = driver.find_elements(By.XPATH, '//ul[@class="hero-list"]/li')for hero in heros:driver.switch_to.window(driver.window_handles[0])# 点击来到英雄详情页面hero.click()

获取英雄皮肤链接并下载

skins = driver.find_elements(By.XPATH, '//div[@class="skins-preview-item"]/img')
for i in range(len(skins)):FileDownload.downloadFile(r'E:\file\lol\{}\{}.jpg'.format(name.text,i),skins[i].get_attribute("src"))

完整代码

# -*- codeing = utf-8 -*-
# @Time : 2021/10/22 21:43
# @Author : xiaow
# @File : lol.py
# @Software : PyCharmimport time
from api import FileDownload
import requests
from selenium import webdriver
from selenium.webdriver.common.by import Byif __name__ == '__main__':url = 'https://lolm.qq.com/v2/champions.html'# 躲避智能检测option = webdriver.ChromeOptions()# option.headless = Trueoption.add_experimental_option('excludeSwitches', ['enable-automation'])option.add_experimental_option('useAutomationExtension', False)driver = webdriver.Chrome(options=option)driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})driver.get(url)# 实现缓慢下滑操作js = "return action=document.body.scrollHeight"# 初始化现在滚动条所在高度为0height = 0# 当前窗口总高度new_height = driver.execute_script(js)heros = driver.find_elements(By.XPATH, '//ul[@class="hero-list"]/li')for hero in heros:driver.switch_to.window(driver.window_handles[0])# 来到英雄详情页面hero.click()time.sleep(3)driver.switch_to.window(driver.window_handles[1])name=driver.find_element(By.XPATH,'//p[@class="heroName_color"]')print(name.text)FileDownload.createFolder(r'E:\file\lol\{}'.format(name.text))skins = driver.find_elements(By.XPATH, '//div[@class="skins-preview-item"]/img')for i in range(len(skins)):FileDownload.downloadFile(r'E:\file\lol\{}\{}.jpg'.format(name.text,i),skins[i].get_attribute("src"))driver.close()

成果

总结

整个过程非常常规并且简单,兄弟们快来试试吧

仅供学习,侵权必删

推荐下自己的爬虫专栏,都是一些入门的爬虫样例,有兴趣的兄弟们可以来看看,顺便点一手关注
❤️爬虫专栏,快来点我呀❤️

另外还有博主的爬虫博客目录
爬虫样例汇总,快来看看吧

python爬取英雄联盟手游的全英雄皮肤 初识selenium相关推荐

  1. python 游戏辅助lol_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  2. python爬取英雄联盟所有皮肤价格表_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  3. python爬取英雄联盟所有皮肤_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  4. 如何运用python爬游戏皮肤_用Python爬取英雄联盟(lol)全部皮肤

    小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀..." 小三 ...

  5. Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤

    Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 文章目录 Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 背景:LOL这款游戏有着大量的玩家,这个游戏里面人们津津乐道的皮肤,每一款 ...

  6. 实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了

    实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了 小三:"怎么了小二?一副无精打采的样子!" 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游 ...

  7. Python爬取英雄联盟全皮肤

    Python爬取英雄联盟皮肤 打开英雄联盟官网:https://lol.qq.com,点击游戏资料,按F12进入开发者模式.刷新,找到hero_list.js,里面有我们需要的网址以及其他信息. 代码 ...

  8. 使用python爬取英雄联盟的图片

    起因:练习一下python,看到有人爬取王者荣耀的皮肤,我也来练练手. 首先查看英雄联盟英雄界面的js,还有英雄的js以及皮肤图片的url.这里我们可以看到英雄的列表是在http://lol.qq.c ...

  9. python爬取英雄联盟所有皮肤价格表_实用Python是如何爬取英雄联盟(lol)所有皮肤,涨知识了...

    小三:"怎么了小二?一副无精打彩的样子!"html 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中不少皮肤都须要花钱买,可是我钱不够呀..." ...

最新文章

  1. 文件到Java中的byte []
  2. python叫什么-Python为什么叫爬虫?Python与爬虫有什么关系?
  3. go zap去除程序名称_适用于Zip,Zap和Zoom游戏的Python程序
  4. sqli-lab--writeup(7~10)文件输出,时间布尔盲注
  5. function函数嵌套 matlab_matlab – 当没有使用“end”时,一个.m文件中的多个函数是嵌套的还是本地的...
  6. 关于如何学好网络 送给学习网络工程的学生
  7. 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像
  8. java整理软件---java模拟键盘,鼠标操作
  9. 使用help()输入keywords查看python中定义的关键字
  10. spring awre的理解
  11. videojs学习随笔记录
  12. 深度学习模型参数初始化的方法
  13. 使用js一行代码解决上网培训弹窗问题
  14. php网页表格样式,HTML的表格样式
  15. 最强整理!Android攒了一个月的面试题及解答,震撼来袭免费下载!
  16. 计算机基础ppt说课稿,计算机基础说课稿ppt课件
  17. 580刷590bios_老司机带你开车,迪兰570怒刷580BIOS超频至1430M
  18. OpenCV探索之路(二十二):制作一个类“全能扫描王”的简易扫描软件
  19. cdr安装成功后出现重启计算机,CDR安装后重启电脑就打不开是什么原因?
  20. 中国货币政策的动态有效性研究--基于 TVP-SV-FAVAR 模型的实证分析

热门文章

  1. 销量飙升!速卖通店铺引流的独家成功方法
  2. 基于双阶段度量学习的跨模态行人再识别
  3. C++:闭包:闭包Closure理解
  4. jquery 模式对话框终极版
  5. 腾讯 SSL 免费证书申请步骤
  6. 计算机二级excel服装采购表,计算机二级EXCEL 衣物采购表
  7. 【中学提纲】必修一——细胞基本结构
  8. 求职面试经验分享,提高求职成功率
  9. 一小时的时间戳是多少?
  10. svg波纹_使用SVG创建材质设计波纹效果