文章目录

  • 1、使用Selenium搞定王者荣耀英雄海报的下载
    • 1.1、前期准备
    • 1.2、分析
      • 1.2.1、第一步
      • 1.2.2、第二步
      • 1.2.3、第三步
    • 1.3、源代码
    • 1.4、运行结果

1、使用Selenium搞定王者荣耀英雄海报的下载

1.1、前期准备

需要有selenium、requests、bs4包,还需要浏览器驱动,使用什么浏览器就去下载什么浏览器的驱动,这里使用的是谷歌浏览器作为所以需要下载谷歌浏览器的驱动包

谷歌驱动下载地址:https://npm.taobao.org/mirrors/chromedriver

下载驱动时要注意要下载和我们使用浏览器版本一致的浏览器驱动

哪里可以查询我们浏览器的版本呢,如下图所示

注意:如果在下载驱动时发现,没有和浏览器对应的版本,那么就找跟自己浏览器最接近并且版本低于自己浏览器版本

驱动下载成功后,将驱动解压放在我们的python安装目录下,就此前期准备完成

1.2、分析

1.2.1、第一步

首先我们先打开王者荣耀官网,查看我们需要的海报在哪


所有我们需要找到 “更多” 的xpath路径


点击跳转

web.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div[2]/div[1]/a').click()

跳转之后可以进行我们的第二步操作了

1.2.2、第二步

进入更多页面查看元素

通过这可以发现每一个里标签都对应一个英雄,所以我们要把所有的li标签给拿到

list_li = web.find_elements_by_xpath('/html/body/div[3]/div/div/div[2]/div[2]/ul/li')

通过查看li标签可看出,我们需要的海报在每个英雄的页面,所以我们需要拿到英雄页面,
要拿到英雄页面的地址,我们需要先找到英雄页面的xpath路径

拿取所有英雄页面地址

for li in list_li:hero_name = li.find_element_by_tag_name("a").texthero_a = li.find_element_by_xpath("./a")   # ./表示从li标签开始hero_href = hero_href.get_attribute("href")  # 拿出a标签中href属性值

拿到所有的href路径之后,可以进行我们的第三步操作

1.2.3、第三步

拿到了所有英雄页面地址后,进入之后查看源码,可以看到存在海报信息

所以进入子页面的方式就改成了requests的方式进入然后拿取源码

拿到源码之后通过bs4方式拿到这个海报地址

 hero_page = requests.get(hero_href.get_attribute("href"))hero_page.encoding="gbk"  # 因为页面为gbk编码所有改为gbkpage = BeautifulSoup(hero_page.text,  "html.parser")  # 拿取页面a = page.find("a", class_="hero-video")  # bs64解析页面img = a.find("img")img_src = img.get_attribute_list("src")[0]img_src = img_src.replace("//", "https://")  # 拿到海报地址

拿到海报地址之后我们就能进行下载了,至此我们拿到了需要的东西,接下来上代码

1.3、源代码

from selenium.webdriver import Chrome
import requests
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Optionsopt = Options()  # 因为selenium会打开页面,设置这个可以不打开页面
opt.add_argument("--headless")
opt.add_argument("--disable-gpu")web = Chrome(options=opt)
web.get("https://pvp.qq.com/")
web.find_element_by_xpath('/html/body/div[3]/div[2]/div[3]/div[2]/div[1]/a').click()
web.switch_to.window(web.window_handles[-1])
list_li = web.find_elements_by_xpath('/html/body/div[3]/div/div/div[2]/div[2]/ul/li')
for li in list_li:hero_name = li.find_element_by_tag_name("a").texthero_href = li.find_element_by_xpath("./a")hero_page = requests.get(hero_href.get_attribute("href"))hero_page.encoding="gbk"page = BeautifulSoup(hero_page.text,  "html.parser")a = page.find("a", class_="hero-video")img = a.find("img")img_src = img.get_attribute_list("src")[0]img_src = img_src.replace("//", "https://")hero_resp = requests.get(img_src)with open("王者荣耀/"+hero_name+".jpg", mode="wb") as f:f.write(hero_resp.content)print(hero_name+" 下载成功!!!")
print("全部下载完成!!!")

1.4、运行结果


磁盘中查看文件

至此,使用Selenium搞定王者荣耀英雄海报的下载就完成了

selenium自动获取王者荣耀英雄海报并保存到本地相关推荐

  1. python玩王者荣耀皮肤碎片怎么获得_手把手教你使用python获取王者荣耀英雄及皮肤高清图片...

    # -*- coding: utf-8 -*- """ __title__ = '爬取王者荣耀英雄及皮肤高清图片' __author__ = '张佑' __mtime__ ...

  2. python通过xpath解析网页爬取高清大图和王者荣耀英雄海报

    python通过xpath解析网页 xpath XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言.最初是用来搜寻 XML 文档的,但 ...

  3. 手把手教你使用Python网络爬虫获取王者荣耀英雄皮肤

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 欢度国庆,共度中秋. /1 前言/ ...

  4. 利用python获取王者荣耀英雄的相关信息

    游戏,是用来放松身心的,也有很多人对游戏研究很深,今天我们就用python获取农药上的英雄的部分信息吧 # author: .Edgar # date: 3/8 # version: 1.0.0imp ...

  5. 最新王者荣耀英雄图像及语音包查询源码

    正文: 王者荣耀个性语音包查询系统开源源码,王者荣耀个性语音包查询系统 上传解压即可使用,可以在线获取王者荣耀英雄的语音包,看起来还是蛮不错的,蛮好看的一个东西. 程序: wwuef.lanzouf. ...

  6. Python爬取 | 王者荣耀英雄皮肤海报

    这里只展示代码,具体介绍请点击下方链接. Python爬取 | 王者荣耀英雄皮肤海报 import requests import re import os import time import wi ...

  7. python爬虫入门------王者荣耀英雄及皮肤数据爬取项目

    王者荣耀英雄及皮肤数据爬取项目 一:做前需知 笔者这段学习了一些爬虫的知识,然后做了一个小项目.接下来,我会把项目的流程展示出来. 运行环境:python 3.6.3.pycharm 2019-3-3 ...

  8. Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目

    Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...

  9. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)

    教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...

最新文章

  1. 再见丑陋的 SwaggerUI,这款API文档生成神器界面更炫酷,逼格更高!
  2. Fastjson 序列化,反序列化Map对象排序问题(字符串转map,map转字符串)
  3. UVA 10976 - Fractions Again?!
  4. CImage 是基于GDI+的,很老的一篇文章,我很久很久以前看到过的
  5. 强势回归!比 Python 快 20% 的 Pyston v2.0 来了!
  6. js html form,JavaScript 表单
  7. http抓包实战 pdf_网络协议HTTP 协议(抓包实战和网络分层)
  8. Asp.Net实例:C# 绘制统计图(三) ——扇形统计图的绘制
  9. instanceof和typeof
  10. 完整版的OpenLDAP搭建全过程
  11. sendmail 邮件服务器 套件,SENDMAIL邮件服务器的安装与设置
  12. 洛谷 P5564: [Celeste-B]Say Goodbye
  13. 基因重组-冲刺日志(第九天)
  14. IP地址冲突的原因及其解决方法
  15. c语言小蜜蜂编程题,小蜜蜂 pascal程序
  16. 利用重复性渐变编写邮件线
  17. IDA使用初探-1.启动IDA
  18. Linux安装jdk和docker安装jdk
  19. 微信小程序登陆凭证校验出现{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}
  20. 数据结构知识点总结整理

热门文章

  1. 很色,非常色,十分色,格外色,异常色,特别色,相当色,太色了!
  2. Java高并发三部曲
  3. 《尽在双11——阿里巴巴技术演进与超越》全书精华摘录
  4. DD-wrt无线参数详解
  5. 时间戳转化为时间小样例
  6. ios 编译时报 Could not build module xxx 的解决方法尝试
  7. micro-F1和macro-F1评价指标的理解
  8. Django框架学习
  9. ZUK Z2开不了机,指示灯长亮
  10. oracle consistent gets,consistent gets在Oracle使用特例