selenium自动获取王者荣耀英雄海报并保存到本地
文章目录
- 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自动获取王者荣耀英雄海报并保存到本地相关推荐
- python玩王者荣耀皮肤碎片怎么获得_手把手教你使用python获取王者荣耀英雄及皮肤高清图片...
# -*- coding: utf-8 -*- """ __title__ = '爬取王者荣耀英雄及皮肤高清图片' __author__ = '张佑' __mtime__ ...
- python通过xpath解析网页爬取高清大图和王者荣耀英雄海报
python通过xpath解析网页 xpath XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言.最初是用来搜寻 XML 文档的,但 ...
- 手把手教你使用Python网络爬虫获取王者荣耀英雄皮肤
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 欢度国庆,共度中秋. /1 前言/ ...
- 利用python获取王者荣耀英雄的相关信息
游戏,是用来放松身心的,也有很多人对游戏研究很深,今天我们就用python获取农药上的英雄的部分信息吧 # author: .Edgar # date: 3/8 # version: 1.0.0imp ...
- 最新王者荣耀英雄图像及语音包查询源码
正文: 王者荣耀个性语音包查询系统开源源码,王者荣耀个性语音包查询系统 上传解压即可使用,可以在线获取王者荣耀英雄的语音包,看起来还是蛮不错的,蛮好看的一个东西. 程序: wwuef.lanzouf. ...
- Python爬取 | 王者荣耀英雄皮肤海报
这里只展示代码,具体介绍请点击下方链接. Python爬取 | 王者荣耀英雄皮肤海报 import requests import re import os import time import wi ...
- python爬虫入门------王者荣耀英雄及皮肤数据爬取项目
王者荣耀英雄及皮肤数据爬取项目 一:做前需知 笔者这段学习了一些爬虫的知识,然后做了一个小项目.接下来,我会把项目的流程展示出来. 运行环境:python 3.6.3.pycharm 2019-3-3 ...
- Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目
Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...
- 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)
教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...
最新文章
- 再见丑陋的 SwaggerUI,这款API文档生成神器界面更炫酷,逼格更高!
- Fastjson 序列化,反序列化Map对象排序问题(字符串转map,map转字符串)
- UVA 10976 - Fractions Again?!
- CImage 是基于GDI+的,很老的一篇文章,我很久很久以前看到过的
- 强势回归!比 Python 快 20% 的 Pyston v2.0 来了!
- js html form,JavaScript 表单
- http抓包实战 pdf_网络协议HTTP 协议(抓包实战和网络分层)
- Asp.Net实例:C# 绘制统计图(三) ——扇形统计图的绘制
- instanceof和typeof
- 完整版的OpenLDAP搭建全过程
- sendmail 邮件服务器 套件,SENDMAIL邮件服务器的安装与设置
- 洛谷 P5564: [Celeste-B]Say Goodbye
- 基因重组-冲刺日志(第九天)
- IP地址冲突的原因及其解决方法
- c语言小蜜蜂编程题,小蜜蜂 pascal程序
- 利用重复性渐变编写邮件线
- IDA使用初探-1.启动IDA
- Linux安装jdk和docker安装jdk
- 微信小程序登陆凭证校验出现{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}
- 数据结构知识点总结整理