解决Python selenium get页面很慢时的问题


Posted in Python onJanuary 30, 2019

driver.get("url")等到页面全部加载渲染完成后才会执行后续的脚本。

在执行脚本时,driver.get("url") ,如果当前的url页面内容较多加载特别慢,很费时间,但是我们需要操作的元素已经加载出来,可以将页面加载停掉,不影响后面的脚本执行,解决办法

设置页面加载timeout,get操作: try get except 脚本window.stop(), 使用GeckoDriver上有效果,

但是在ChromeDriver上还是会有问题,抛出异常timeout后续脚本不会继续执行

GeckoDriver执行具体如下:

访问百度贴吧某个获取其帖子总页数:

可以通过两种方式获取,简单的就是直接定位元素共11页

代码用定位尾页获取总页数

解决Python selenium get页面很慢时的问题

from selenium import webdriver
import re
 
driver = webdriver.Firefox()
#设定页面加载timeout时长,需要的元素能加载出来就行
driver.set_page_load_timeout(20)
driver.set_script_timeout(20)
#try去get
try:
  driver.get("http://tieba.baidu.com/p/5659969529?red_tag=w0852861182")
except:
  print("加载页面太慢,停止加载,继续下一步操作")
  driver.execute_script("window.stop()")
last_page_element = driver.find_element_by_css_selector("li.l_pager.pager_theme_4.pb_list_pager >a:nth-child(12)") #定位到元素尾页元素
#获取尾页页码链接文本
text = last_page_element.get_attribute("href")
all_page_num = re.search("\d+$",text).group() # 正则匹配到页码
print("当前贴吧贴子总页数为:%s"%all_page_num)

以上这篇解决Python selenium get页面很慢时的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
介绍Python的Django框架中的QuerySets
Apr 20 Python
python正则表达式之作业计算器
Mar 18 Python
TensorFlow如何实现反向传播
Feb 06 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
pandas数值计算与排序方法
Apr 12 Python
python的concat等多种用法详解
Nov 28 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
Python表达式的优先级详解
Feb 18 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
对python实现模板生成脚本的方法详解
Jan 30 #Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 #Python
python 发送和接收ActiveMQ消息的实例
Jan 30 #Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 #Python
理想高通滤波实现Python opencv示例
Jan 30 #Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 #Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 #Python
You might like
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
Javascript - HTML的request类
2007/01/09 Javascript
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
python获取指定时间差的时间实例详解
2017/04/11 Python
python实现决策树分类算法
2017/12/21 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python FFT合成波形的实例
2019/12/04 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
数据库的约束含义
2012/09/09 面试题
试用期员工考核制度
2014/01/22 职场文书
企业后勤岗位职责
2014/02/28 职场文书
初中学生评语大全
2014/04/24 职场文书
主持人开场白台词
2015/05/29 职场文书
为自己工作观后感
2015/06/11 职场文书
工作服管理制度范本
2015/08/06 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript