当前位置: 首页 > news >正文

python-爬虫实例(5):将进酒,杯莫停!

目录

前言

将进酒,杯莫停!

一、浇给

 

 二、前摇

1.导入selenium库

 2.下载浏览器驱动

三、爬虫四步走

1.UA伪装

2.获取url

3.发送请求

4.获取响应数据进行解析并保存

总结


前言

        博主身为一个农批,当然要尝试爬取王者荣耀的东西啦。

 

将进酒,杯莫停!

 

一、浇给

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.edge.options import Optionsif __name__ == '__main__':# 无头模式opt = Options()opt.add_argument("--headless")driver = webdriver.Edge(options=opt)# 创建一个可以通过 Selenium 控制的 Microsoft Edge 浏览器实例,并将其赋值给变量 driver# driver = webdriver.Edge()# 获取url并发送请求driver.get("https://pvp.qq.com/web201605/herolist.shtml")# time.sleep(3)WebDriverWait(driver, 10).until(  # 等待程序运行10s,定位到英雄列表的位置则继续运行,未定位到则报错EC.presence_of_element_located((By.XPATH, "//ul[@class='herolist clearfix']")))# find_elements获取ul标签下的所有li标签  find_element获取该标签下第一个标签的内容li_list = driver.find_elements(By.XPATH, "//ul[@class='herolist clearfix']/li")for i in li_list:img_url = i.find_element(By.XPATH, "a/img").get_attribute("src")name = i.find_element(By.XPATH, "a/img").get_attribute("alt")print(img_url, name)driver.close()

输出:太多了,就不复制进代码里展示了,获取了所有英雄的图片和名字。

 

 二、前摇

1.导入selenium库

        按win + r打开命令提示符,输入cmd,按回车进入,安装selenium库

        安装不了的可以先给pip换个源,这篇文章开头即有:python-快速上手爬虫-CSDN博客

pip install selenium

 

 2.下载浏览器驱动

        我用的edge的浏览器,所以在这介绍的就是下载edge浏览器的驱动。

打开浏览器设置,点击最下面的关于浏览器,记住浏览器的版本号。

 

搜索edge驱动。

 

点进去,往下翻找到驱动的版本,找到自己浏览器对应的版本下载,安装x64的。

 

下载完之后将文件解压并移至python解释器所在的文件夹,上面的就是浏览器的驱动,下面的是python解释器。如果python解释器下载时环境变量没有配置好的可以看:0基础学python-1:python解释器的安装及环境配置-CSDN博客

 至此,技能前摇已完成。

 

三、爬虫四步走

1.UA伪装

        这一次不用进行UA伪装,虚晃一枪,哈哈哈。实际原因是selenium请求是驱动浏览器自己进行操作,所以不需要UA伪装,但是有一些网站可能还是能检测到。

 

2.获取url

        进入王者荣耀英雄列表的界面,按f12进入检查,刷新页面,然后获取url。

 

先展示一段selenium请求的效果,selenium会驱动浏览器自己去打开给定的url界面。这就意味着我们可以使用这种方式让浏览器自己进行更多的操作。

 

3.发送请求

流水的url,铁打的发送请求。不过这俩可以合并使用。

    # 获取url并发送请求driver.get("https://pvp.qq.com/web201605/herolist.shtml")

 

4.获取响应数据进行解析并保存

  • 睡眠三秒是为了等界面渲染完再获取信息,不然界面未渲染完就获取信息,会导致找不到信息,然后报错。
  • WebDriverWait(driver, 10).until 的作用也是如此,前一个参数是等待的程序,后一个是等待的时间。
  • EC.presence_of_element_located里是期望定位到的内容。定位到了就继续运行,未定位或者超出等待时间会报错。
  • selenium里定位标签的方法是By,这里是通过XPATH进行定位,还有其他的参数可以进行定位,例如ID,ClASS_NAME之类的信息。
  • find_elements获取ul标签下的所有li标签 ,find_element获取ul标签下第一个li标签。
  • 然后就是熟悉的遍历li标签取值,在这里不需要用"./"来表示当前目录,而是直接写li标签下的标签。
  • 还有一点不同的是,取标签里的属性这里不使用@属性名,而是用.get_attribute(''属性名'')来进行取值。
  • 最后要关闭这个运行程序,使用.close()进行关闭
    time.sleep(3)WebDriverWait(driver, 10).until(  # 等待程序运行10s,定位到英雄列表的位置则继续运行,未定位到则报错EC.presence_of_element_located((By.XPATH, "//ul[@class='herolist clearfix']")))# find_elements获取ul标签下的所有li标签  find_element获取该标签下第一个标签的内容li_list = driver.find_elements(By.XPATH, "//ul[@class='herolist clearfix']/li")for i in li_list:img_url = i.find_element(By.XPATH, "a/img").get_attribute("src")name = i.find_element(By.XPATH, "a/img").get_attribute("alt")print(img_url, name)driver.close()

 

这样进行操作的时候,浏览器会打开王者荣耀英雄列表的界面,这样会占用一定资源。

那我们可以使用"无头模式"进行操作。更快更有效的利用资源

将这段代码

    # 创建一个可以通过 Selenium 控制的 Microsoft Edge 浏览器实例,并将其赋值给变量 driverdriver = webdriver.Edge()

替换成这样即可

from selenium.webdriver.edge.options import Options# 无头模式opt = Options()opt.add_argument("--headless")driver = webdriver.Edge(options=opt)

 

总结

        博主作为李白十年老玩家,就使用了李白的《行路难》里的一句诗当文章题目。

将进酒,杯莫停!

        这句真的很帅啊!

希望大家使用我这个方法都能成功,如果有什么问题可以私信交流,或者直接在评论区询问即可。一起加油!

相关文章:

python-爬虫实例(5):将进酒,杯莫停!

目录 前言 将进酒,杯莫停! 一、浇给 二、前摇 1.导入selenium库 2.下载浏览器驱动 三、爬虫四步走 1.UA伪装 2.获取url 3.发送请求 4.获取响应数据进行解析并保存 总结 前言 博主身为一个农批,当然要尝试爬取王者荣耀的东西啦。 将进…...

AGI 之 【Hugging Face】 的【从零训练Transformer模型】之二 [ 从零训练一个模型 ] 的简单整理

AGI 之 【Hugging Face】 的【从零训练Transformer模型】之二 [ 从零训练一个模型 ] 的简单整理 目录 AGI 之 【Hugging Face】 的【从零训练Transformer模型】之二 [ 从零训练一个模型 ] 的简单整理 一、简单介绍 二、Transformer 1、模型架构 2、应用场景 3、Hugging …...

十大排序的稳定性和时间复杂度

十大排序算法的稳定性和时间复杂度是数据结构和算法中的重要内容。 以下是对这些算法的稳定性和时间复杂度的详细分析: 稳定性 稳定性指的是排序算法在排序过程中是否能够保持相等元素的原始相对顺序。根据这个定义,我们可以将排序算法分为稳定排序和…...

【系列教程之】1、点亮一个LED灯

1、点亮一个LED灯 作者将狼才鲸创建日期2024-07-23 CSDN教程目录地址:【目录】8051汇编与C语言系列教程本Gitee仓库原始地址:才鲸嵌入式/8051_c51_单片机从汇编到C_从Boot到应用实践教程 本源码包含C语言和汇编工程,能直接在电脑中通过Keil…...

搜维尔科技:Manus Metagloves使用精确的量子跟踪技术捕捉手部每一个细节动作

Manus Metagloves使用精确的量子跟踪技术捕捉手部每一个细节动作 搜维尔科技:Manus Metagloves使用精确的量子跟踪技术捕捉手部每一个细节动作...

机器学习 | 阿里云安全恶意程序检测

目录 一、数据探索1.1 数据说明1.2 训练集数据探索1.2.1 数据特征类型1.2.2 数据分布1.2.3 缺失值1.2.4 异常值1.2.5 标签分布探索 1.3 测试集探索1.3.1 数据信息1.3.2 缺失值1.3.3 数据分布1.3.4 异常值 1.4 数据集联合分析1.4.1 file_id 分析1.4.2 API 分析 二、特征工程与基…...

python打包exe文件-实现记录

1、使用pyinstaller库 安装库: pip install pyinstaller打包命令标注主入库程序: pyinstaller -F.\程序入口文件.py 出现了一个问题就是我在打包运行之后会出现有一些插件没有被打包。 解决问题: 通过添加--hidden-importcomtypes.strea…...

基本的DQL语句-单表查询

一、DQL语言 DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如SELECT语句。是SQL语句 中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询和多 表联查。 注意:所有的查询…...

Vue3 对比 Vue2

相关信息简介2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王) 2 年多开发, 100位贡献者, 2600次提交, 600次 PR、30个RFC Vue3 支持 vue2 的大多数特性 可以更好的支持 Typescript,提供了完整的…...

2024中国大学生算法设计超级联赛(1)

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,彩笔ACMer一枚。 🏀所属专栏:杭电多校集训 本文用于记录回顾总结解题思路便于加深理解。 📢📢📢传送门 A - 循环位移解…...

offer题目51:数组中的逆序对

题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,在数组{7,5,6,4}中,一共存在5个逆序对,分别是(7…...

45、PHP 实现滑动窗口的最大值

题目: PHP 实现滑动窗口的最大值 描述: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如: 如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3, 那么一共存在6个滑动窗口, 他们的最大值…...

【计算机视觉】siamfc论文复现实现目标追踪

什么是目标跟踪 使用视频序列第一帧的图像(包括bounding box的位置),来找出目标出现在后序帧位置的一种方法。 什么是孪生网络结构 孪生网络结构其思想是将一个训练样本(已知类别)和一个测试样本(未知类别)输入到两个CNN(这两个CNN往往是权值共享的)中&#xff0…...

数学建模学习(111):改进遗传算法(引入模拟退火、轮盘赌和网格搜索)求解JSP问题

文章目录 一、车间调度问题1.1目前处理方法1.2简单案例 二、基于改进遗传算法求解车间调度2.1车间调度背景介绍2.2遗传算法介绍2.2.1基本流程2.2.2遗传算法的基本操作和公式2.2.3遗传算法的优势2.2.4遗传算法的不足 2.3讲解本文思路及代码2.4算法执行结果: 三、本文…...

Golang | Leetcode Golang题解之第241题为运算表达式设计优先级

题目&#xff1a; 题解&#xff1a; const addition, subtraction, multiplication -1, -2, -3func diffWaysToCompute(expression string) []int {ops : []int{}for i, n : 0, len(expression); i < n; {if unicode.IsDigit(rune(expression[i])) {x : 0for ; i < n &…...

Unity客户端接入原生Google支付

Unity客户端接入原生Google支付 1. Google后台配置2. 开始接入Java部分C#部分Lua部分 3. 导出工程打包测试参考踩坑注意 1. Google后台配置 找到内部测试&#xff08;这个测试轨道过审最快&#xff09;&#xff0c;打包上传&#xff0c;这个包不需要接入支付&#xff0c;如果已…...

Spring Cloud之五大组件

Spring Cloud 是一系列框架的有序集合&#xff0c;为开发者提供了快速构建分布式系统的工具。这些组件可以帮助开发者做服务发现&#xff0c;配置管理&#xff0c;负载均衡&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线等。以下是 Spring Cl…...

在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1

1. 安装 Docker 步骤 1.1&#xff1a;更新包索引并安装依赖包 先安装yum的扩展&#xff0c;yum-utils提供了一些额外的工具&#xff0c;这些工具可以执行比基本yum命令更复杂的任务 sudo yum install -y yum-utils sudo yum update -y #更新系统上已安装的所有软件包到最新…...

redis的学习(一):下载安装启动连接

简介 redis的下载&#xff0c;安装&#xff0c;启动&#xff0c;连接使用 nosql nosql&#xff0c;即非关系型数据库&#xff0c;和传统的关系型数据库的对比&#xff1a; sqlnosql数据结构结构化非结构化数据关联关联的非关联的查询方式sql查询非sql查询事务特性acidbase存…...

前端设计模式面试题汇总

面试题 1. 简述对网站重构的理解&#xff1f; 参考回答&#xff1a; 网站重构&#xff1a;在不改变外部行为的前提下&#xff0c;简化结构、添加可读性&#xff0c;而在网站前端保持一致的行为。也就是说是在不改变UI的情况下&#xff0c;对网站进行优化&#xff0c; 在扩展的…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...