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 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页面等待:强制等待、隐式等待和显式等待相关推荐
- python网络爬虫---selenium的使用
selenium使用需要先安装chrome和chromedriver.exe 见:linux安装google chrome 和 selenium webdriver你使用的是不受支持的命令行标记 这两 ...
- Python网络爬虫(四):selenium+chrome爬取美女图片
说明: Python版本:Python IDE:PyCharm chrome版本:我的版本63 chromedriver.exe:因为是模拟浏览器访问,chrome需要再下载一个驱动,具体方式在我的上 ...
- 【Python网络爬虫实战篇】使用selenium+requests爬取下载高清源视频:关于爬取m3u8文件链接解析为ts视频合并成mp4视频的分析实战
这两天博主在摸鱼时,偶然间接触到了流媒体的概念,一时间来了兴致.再加上之前博主有着七.八年的视频制作经验,深知视频素材获取的不易.因此,打算利用自己所学的python网络爬虫的知识,通过编写代码实现获 ...
- python爬虫selenium页面滑动案例
一个python网络爬虫关于selenium页面滑动的简单案例 需求如下: 用selenium访问链家网站长沙新房1-5页的数据,并保存下来.滑动,然后点击翻页翻页数据,并保存下来 目标网站:http ...
- Python实训day08am【网络爬虫selenium、图像处理入门】
Python实训-15天-博客汇总表 目录 1.网络爬虫-selenium(歌曲与歌词) 2.图像处理 2.1.安装库 2.2.图片处理 2.3.马赛克 2.4.副本-缩略图-粘贴-创建新图 2.5. ...
- Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博
Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录. 首先我们需要安装selenium,通过pip安装: ``` pip ...
- Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据
Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据 不需要登陆新浪微博账户,直接运行就可以通过python爬虫爬取新浪微博用户数据.本例selenium与pyautogui ...
- python网络爬虫_Python网络爬虫——爬取视频网站源视频!
原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...
- Python网络爬虫(一):爬虫基础
Python网络爬虫(一)爬虫基础 一.爬虫基础 1.HTTP基本原理 1.1URI和URL URI,全称:Uniform Resource Identifier,即统一资源标志符:URL,全称:Un ...
最新文章
- Spring注解 开发
- 【408预推免复习】计算机组成原理之指令系统
- ORA-12638: 身份证明检索失败 解决方法
- SSM中jsp向后台Controller传值中文乱码的奇葩解决!!!
- 【题解】 Codeforces Edu41 F. k-substrings (字符串Hash)
- boost::python::iterator相关的测试程序
- Linux 统计某个字符串出现的次数
- 企业为开源做贡献,贡献大了说话就有人听了
- 全覆盖路径规划--Morse函数临界点的地图精确单元分解
- Android API与系统版本的关系
- 简易时间计时器的实现
- 主分区、扩展分区、逻辑分区
- Android基础篇 访问Assets文件夹里面的资源【文本、图片、音频、字体包】
- 一、安装Centos
- c# cad二次开发 ribbon界面 给CAD加个菜单栏
- C++课设-学生信息管理系统
- STM32F103ZET6器件功能配置和元器件选型
- 消防系统计算机网络安全,麦积消防中队组织开展网络安全排查
- 2021-12-12 hadoop3:FsImage
- ggdag 绘制DAG和因果图