解决selenium加载网页过慢影响程序运行时间的问题

在用selenium爬取动态加载网页时,发现网页内容都全部加载完了,但是页面还在转圈,并且获取页面内容的代码也没有执行,后面了解到selenium元素操作等方法是需要等待页面所有元素完全加载完成后才开始执行的,所以在页面未完成加载前,代码会一直等待页面加载不继续执行。

解决方法

设置页面加载时间,到了点就通过异常处理的方式让页面加载停止。超过设置的加载时间就会报错,然后捕获异常让页面停止加载

import time
from selenium import webdriverstart = time.time()driver = webdriver.Chrome()
# 设置页面加载时间
driver.set_page_load_timeout(5)try:driver.get('https://search.damai.cn/search.html?keyword=111&spm=a2oeg.home.searchtxt.dsearchbtn')
except:# 超时后执行Javascript停止页面加载driver.execute_script('window.stop()')end = time.time()
# 计算页面加载时间
print(end - start)>>>6.229357481002808

设置加载策略,设置加载策略为eager

import time
from selenium import webdriverstart = time.time()options = webdriver.ChromeOptions()
# 设置加载策略为eager
options.page_load_strategy = 'eager'
driver = webdriver.Chrome(options=options)
driver.get('https://search.damai.cn/search.html?keyword=111&spm=a2oeg.home.searchtxt.dsearchbtn')end = time.time()
# 计算页面加载时间
print(end - start)>>>1.859546184539795

通过这2步可以大大提升速度。之前我加载页面一个就要42s,效率很低。改完以后刷刷滴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot +shiro导致springboot 事务不起作用

解决方法:一、加监听,二、懒加载(Autowired前加Lazy) 例如: 二、(每个autowired前都加lazy)(不推荐) Lazy Autowired private UserService userService; 一、 Bean("securityManager&…

2024年数字化经济与金融创新国际学术会议(ICDEFI 2024)

2024年数字化经济与金融创新国际学术会议(ICDEFI 2024) 会议简介 2024年数字经济与金融创新国际学术会议即将召开。此次会议旨在汇集全球数字经济与金融创新领域的专家学者,共同探讨数字经济的发展趋势以及金融创新的路径。与会者将分享前沿…

机房网络运维服务项目难点与关键点分析

随着信息技术的飞速发展,机房作为支撑企业信息化建设的核心枢纽,其网络运维服务的重要性日益凸显。然而,在实际运维过程中,运维团队常常面临诸多难点和挑战。本文将围绕机房网络运维服务项目的难点和关键点进行深入分析&#xff0…

如何理解 Java 8 引入的 Lambda 表达式及其使用场景

Lambda表达式是Java 8引入的一项重要特性,它使得编写简洁、可读和高效的代码成为可能。Lambda表达式本质上是一种匿名函数,能够更简洁地表示可传递的代码块,用于简化函数式编程的实现。 一、Lambda表达式概述 1. 什么是Lambda表达式 Lambd…

【STM32】STM32F103C6T6标准外设库

1、标准外设库获取 第一步,首先获取标准外设库,可以从官网进行下载。 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 根据自己的型号选择不同的系列,我这里选择是STM32F1系列 下载最新版本V3.6&a…

KafkaStream Local Store和Global Store区别和用法

前言 使用kafkaStream进行流式计算时,如果需要对数据进行状态处理,那么常用的会遇到kafkaStream的store,而store也有Local Store以及Global Store,当然也可以使用其他方案的来进行状态保存,文本主要理清楚kafkaStream…

【QT5】<总览二> QT信号槽、对象树及样式表

文章目录 前言 一、QT信号与槽 1. 信号槽连接模型 2. 信号槽介绍 3. 自定义信号槽 二、不使用UI文件编程 三、QT的对象树 四、添加资源文件 五、样式表的使用 六、QSS文件的使用 前言 承接【QT5】<总览一> QT环境搭建、快捷键及编程规范。若存…

【最新鸿蒙应用开发】——一篇搞懂什么是UIAbility

UIAbility组件 UIAbility组件是一种包含UI的应用组件,UIAbility组件是系统调度的基本单元(最小单元),为应用提供绘制界面的窗口,主要用于和用户交互。一个应用可以包含一个或多个UIAbility组件。 UIAbility的设计理念…

AI大模型应用开发实践:5.快速入门 Assistants API

快速入门 Assistants API Assistants API 允许您在自己的应用程序中构建人工智能助手。一个助手有其指令,并可以利用模型、工具和知识来回应用户查询。 Assistants API 目前支持三种类型的工具: 代码解释器 Code Interpreter检索 Retrieval函数调用 Function calling使用 P…

【LeetCode】使括号有效的最少添加

题目链接: 921. 使括号有效的最少添加 - 力扣(LeetCode) 对于一个只有()组合的括号字符串,如果想要这个字符串是有效的括号对,找出最少需要插入多少个括号 括号离不开栈,栈可以消除…

Java同步与线程安全,同步方法、同步块和java.util.concurrent包的使用

Java的同步与线程安全是并发编程中至关重要的部分。在多线程环境下,确保数据的一致性和避免竞态条件(race condition)是程序设计的关键。 一、Java中的线程安全 线程安全(Thread Safety)是指多线程环境下&#xff0c…

C++中的注释作用

程序的注释是解释性语句,您可以在 C 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。 C 支持单行注释和多行注释。注释中的所有字符会被 C 编译器忽略。 C 注释一般有两种: // - 一般用于单行注释。 / ...…

【耗时八个小时】机器学习过拟合和欠拟合!看这一篇文章就够了

.. 纯. .干 货 . . . . 在机器学习中,有一项非常重要的概念,那就是:过拟合(Overfitting)和欠拟合(Underfitting)。 它们涉及到机器学习中常见的两种模型性能问题,分别表示模型在训练…

[modern c++] 使用shared_mutex , shared_lock完成读写锁,Need C++ 17

前言: C 17开始,引入了两个新的同步组件, shared_mutex 和 shared_lock ,这两个组件的一个典型使用案例就是实现读写锁。 原语: shared_mutex , 一个提供让多个线程都可以同时获取能力的mutex。 shared_…

一键开启:盲盒小程序里的梦幻奇遇

在繁忙的都市生活中,每个人心中都藏着一个关于奇遇的梦想。如今,我们为您精心打造了一款盲盒小程序——“梦幻奇遇”,只需一键开启,就能带您走进一个充满无限惊喜和梦幻色彩的奇幻世界。 一、神秘盲盒,惊喜连连 “梦幻…

gitlab之cicd的gitlab-runner集成-dockerfile构建环境

目录 概述离线资源docker-compose问题 docker-compose问题1问题2 gitlab-runner集成gitlab 概述 cicd引文目录是想通过dockerfile构建 maven、jdk、docker环境的 gitlab-runner 运行环境。但docker最后测试的时候有点问题,且最后使用 kubectl 时有麻烦,所…

python--面向对象-文件读写-异常

一、继承 定义一个类时,需要使用另外一个类的方法或属性,就可以通过继承实现 object是Python的顶级类,创建类是会自动继承,就拥有object中的方法 定义格式 # 类的定义 # 旧式类定义 一般在定义单个类时使用 class 类名:name N…

Spring Boot 使用自定义注解和自定义线程池实现异步日志记录

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

.NET集成DeveloperSharp操作SqlServer、MySql等数据库

🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面…

在Linux系统中程序是如何执行的?

在Linux系统中,程序的执行是一个复杂而精细的过程,涉及多个步骤。 1.进程创建 在Linux中,进程的创建,除了第一个进程(0号进程)是通过硬编码创建,其他所有进程通常都是通过fork()系统调用来实现…