关于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 ECdriver = 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():passtry:element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
except:demo()
finally:driver.quit()

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

  1. python网络爬虫---selenium的使用

    selenium使用需要先安装chrome和chromedriver.exe 见:linux安装google chrome 和 selenium webdriver你使用的是不受支持的命令行标记 这两 ...

  2. Python网络爬虫(四):selenium+chrome爬取美女图片

    说明: Python版本:Python IDE:PyCharm chrome版本:我的版本63 chromedriver.exe:因为是模拟浏览器访问,chrome需要再下载一个驱动,具体方式在我的上 ...

  3. 【Python网络爬虫实战篇】使用selenium+requests爬取下载高清源视频:关于爬取m3u8文件链接解析为ts视频合并成mp4视频的分析实战

    这两天博主在摸鱼时,偶然间接触到了流媒体的概念,一时间来了兴致.再加上之前博主有着七.八年的视频制作经验,深知视频素材获取的不易.因此,打算利用自己所学的python网络爬虫的知识,通过编写代码实现获 ...

  4. python爬虫selenium页面滑动案例

    一个python网络爬虫关于selenium页面滑动的简单案例 需求如下: 用selenium访问链家网站长沙新房1-5页的数据,并保存下来.滑动,然后点击翻页翻页数据,并保存下来 目标网站:http ...

  5. Python实训day08am【网络爬虫selenium、图像处理入门】

    Python实训-15天-博客汇总表 目录 1.网络爬虫-selenium(歌曲与歌词) 2.图像处理 2.1.安装库 2.2.图片处理 2.3.马赛克 2.4.副本-缩略图-粘贴-创建新图 2.5. ...

  6. Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

    Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录. 首先我们需要安装selenium,通过pip安装: ``` pip ...

  7. Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据

    Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据 不需要登陆新浪微博账户,直接运行就可以通过python爬虫爬取新浪微博用户数据.本例selenium与pyautogui ...

  8. python网络爬虫_Python网络爬虫——爬取视频网站源视频!

    原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...

  9. Python网络爬虫(一):爬虫基础

    Python网络爬虫(一)爬虫基础 一.爬虫基础 1.HTTP基本原理 1.1URI和URL URI,全称:Uniform Resource Identifier,即统一资源标志符:URL,全称:Un ...

最新文章

  1. Spring注解 开发
  2. 【408预推免复习】计算机组成原理之指令系统
  3. ORA-12638: 身份证明检索失败 解决方法
  4. SSM中jsp向后台Controller传值中文乱码的奇葩解决!!!
  5. 【题解】 Codeforces Edu41 F. k-substrings (字符串Hash)
  6. boost::python::iterator相关的测试程序
  7. Linux 统计某个字符串出现的次数
  8. 企业为开源做贡献,贡献大了说话就有人听了
  9. 全覆盖路径规划--Morse函数临界点的地图精确单元分解
  10. Android API与系统版本的关系
  11. 简易时间计时器的实现
  12. 主分区、扩展分区、逻辑分区
  13. Android基础篇 访问Assets文件夹里面的资源【文本、图片、音频、字体包】
  14. 一、安装Centos
  15. c# cad二次开发 ribbon界面 给CAD加个菜单栏
  16. C++课设-学生信息管理系统
  17. STM32F103ZET6器件功能配置和元器件选型
  18. 消防系统计算机网络安全,麦积消防中队组织开展网络安全排查
  19. 2021-12-12 hadoop3:FsImage
  20. ggdag 绘制DAG和因果图

热门文章

  1. matplot 色卡
  2. Android 高德地图在华为手机上获取位置信息失败
  3. PADS Layout进行PCB设计验证的方法
  4. Ubuntu20.04开启root账户
  5. ubuntu root账户登录
  6. NFT 游戏互操作性:技术不是拦路虎
  7. 水利水电安全员考试多选练习题库(5)
  8. Python获取手机摄像头视频流
  9. Godaddy打不开和支付时没有支付宝选项的解决方法
  10. 计算机毕业设计ssm公交电子站牌管理系统软件9430l系统+程序+源码+lw+远程部署