码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 解决selenium加载网页过慢影响程序运行时间的问题


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

    解决方法

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

    1. import time
    2. from selenium import webdriver
    3.  
    4. start = time.time()
    5.  
    6. driver = webdriver.Chrome()
    7. # 设置页面加载时间
    8. driver.set_page_load_timeout(5)
    9.  
    10. try:
    11.     driver.get('https://search.damai.cn/search.html?keyword=111&spm=a2oeg.home.searchtxt.dsearchbtn')
    12. except:
    13.     # 超时后执行Javascript停止页面加载
    14.     driver.execute_script('window.stop()')
    15.  
    16. end = time.time()
    17. # 计算页面加载时间
    18. print(end - start)
    19.  
    20.  
    21. >>>6.229357481002808

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

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

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

  • 相关阅读:
    常用Redis界面化软件
    (五)JPA - 原生SQL实现增删改查
    基于Springboot外卖系统02:数据库搭建+Maven仓库搭建
    mongodb_exporter +prometheus
    React <> </>的用法
    关于bug的分类和定金,终于有人讲明白了
    【Gitlab】01_基于docker部署gitlab及使用操作
    国产CPLD(AGM1280)试用记录——做个SPI接口的任意波形DDS [原创www.cnblogs.com/helesheng]
    TikTok创意大赛:如何制作病毒性视频
    【机试题】两个链表相减,并以相同形式返回一个表示相减结果的链表
  • 原文地址:https://blog.csdn.net/weixin_62588253/article/details/139459570
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号