Python网络爬虫Selenium页面等待:强制等待、隐式等待和显式等待

简介: Python网络爬虫Selenium页面等待:强制等待、隐式等待和显式等待

关于Python网络爬虫Selenium强制等待、隐式等待和显式等待的总结

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

强制等待

使整个脚本暂停运行。

time.sleep(2)

隐式等待

不同于显式等待,显式等待针对的是目标元素,而隐式等待针对的是全局的所有的元素。
如果设置等待十秒,可以理解为在10秒内不停刷新整个页面,看目标元素是否加载出来
如果时间还没到找到了目标元素,就不再继续等待,程序继续执行。
如果时间到了还没找到目标元素,就报错。
隐式等待使用时只需要声明一次。
网络爬虫中我们用到更多的就是隐式等待。

示例:

driver.implicitly_wait(10)
print(1)
driver.find_element_by_id('su')
print(2)
driver.find_element_by_id('xxx')
print(3)

显式等待

显式等待是单独针对某个元素,表明某个条件成立后才执行获取元素的操作。
以下面代码为例,即目标标签加载出来出后,开始获取该标签。
同上如果时间还没到找到了目标元素,就不再继续等待,程序继续执行。
如果时间到了还没找到目标元素,就报错。
显式等待使用时需要在每个元素前声明

element = WebDriverWait(driver, 10, 1).until(
    EC.presence_of_element_located((By.ID, "kwssxx"))
element.send_keys('xxx')

WebDriverWait()可以设置第三个参数,默认每0.5秒检查一次目标元素是否加载出来了。这里设置为每1秒检查一次。


其他补充

将显式等待写成异常处理的写法,
这样的写法在程序中更友好。如果获取出现错误,则调用我们定义的其他方法。不直接报错。

def demo():
    pass

try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
except:
    demo()
finally:
    driver.quit()
目录
相关文章
|
8月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
9月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
8月前
|
运维 监控 数据可视化
Python 网络请求架构——统一 SOCKS5 接入与配置管理
通过统一接入端点与标准化认证,集中管理配置、连接策略及监控,实现跨技术栈的一致性网络出口,提升系统稳定性、可维护性与可观测性。
|
8月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
8月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
9月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1065 19
|
8月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
9月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
8月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
9月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略

推荐镜像

更多