Selenium phantomjs与spynner等待网页加载完成方式总结

Windows——Nessus安装(无限制) Nessus手把手图文安装,解除ip限制~ 阅读详情

利用无头浏览器对网页元素进行模拟操作时经常遇到的问题就是**元素不存在这样的错误。原因大概有这么几种。

  1. 网页没有加载完成,因此定位不到元素
  2. 网页元素显示样式设置为不可见,即display:none,常见的如一些悬停显示的菜单。
  3. 元素在iframe 中,常见的情况比如腾讯网站的登录框。
    一般来讲,在网页源代码中能够看到的且display属性设置为可见的元素,selenium等工具才能够正常定位,要不然就会出现元素不存在的错误。

第2种情况可以使用一些模拟行为触发不可见的元素,或者调用js、jquery修改display属性。
第3种情况selenium可以使用switch_to_frame()切换iframe

本文重点说下第一种情况,网页只有完全加载,元素才可能被定位,但是网页是否加载完成又该怎么判断、处理呢。
常见处理方法如下:

  1. time.sleep()直接等待几秒钟,等待网页加载完成,这种方法很死板,网页加载是否加载也不能预测,只能撞大运,但也是最简单的一种方法。
  2. selenium的driver.implicitly_wait(),隐式等待,全局性设置,只用设置一次就可以。
  3. selenium的WebDriverWait(driver, 100).until(lambda x: x.find_element_by_xpath('.WB_FEED')),显式等待
  4. spynner的br.wait_for_content(lambda br: 'WB_feed' in br.html),类似于selenium的显式等待
  5. spynner的各类操作,如load、click等等操作均内置了等待内容加载的参数,原来的参数如br.click('div.login-switch', wait_load=True),新版的参数形式如br.load("html_controls.html", 1, wait_callback=wait_load)
OmniBox2.0.X版本 一站式影视订阅与多端播放平台文档 OmniBox 是一站式影视订阅与多端播放平台:你可以用 JS 或 Python 按 OmniBox 规范自建爬虫源,在后台把多个爬虫源自由组合成订阅,然后在网页、手机、电视等全平台的客户端里使用。只要客户端支持 TVBox、猫源、UZ、Emby 等协议,即可无缝对接。同时支持电视直播源、六大平台直播间和网盘源视频在线观看,通过 Docker 一键部署。 阅读详情

相关推荐

SAP ABAP实战:如何用CVI_EI_INBOUND_MAIN批量更新BP邮箱(附完整代码)

本文深入解析了SAP ABAP中CVI_EI_INBOUND_MAIN函数在业务伙伴(BP)邮箱地址批量维护场景下的应用。通过详细讲解数据结构构建、关键参数(如任务参数'5')配置及完整代码示例,为开发者提供了一套高效、稳定的批量更新解决方案,并分享了性能优化与错误处理的最佳实践。

weixin_29228781的博客 77

网络爬虫 之 PhantomJS技术实战

本课程使用java作为编程语言,主要内容包括爬虫的基本原理,使用Phantomjs技术抓取拉钩企业招聘信息进行系统分析、Phantomjs的详细使用方法,如何使用Phantomjs分析html代码,基于队列的爬虫、数据存储、数据拆分、爬虫限速、网页跟踪,脚本注入等技术。任务作业:请抓取拉钩企业招聘数据进行企业岗位数据分析实战《各大城市招聘状况分析》。(注意: 作业需写在优快云博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

北斗三号PPP-B2b信号实战指南:从接收机配置到精度验证全流程

本文提供了北斗三号PPP-B2b信号从硬件配置到数据处理的全流程实战指南。详细解析了信号特性、接收机关键参数设置,并以飞纳接收机和Mass软件为例,演示了数据解算与精度验证方法。通过覆盖中国多地区的联调测试案例,验证了PPP-B2b服务可实现分米级实时定位精度,为无网络地区高精度应用提供了可靠解决方案。

nn3456的博客 553

Selenium 鼠标和键盘操作

鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作 action.click(driver.findElement(By.name(element)))// 鼠标左键点击指定的元素 清单 2. 鼠标右键点击

Louie 1251

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

基于STM32和MPU6050的手势控制小车设计与实现

MPU6050传感器:用于检测手势变化,采集加速度和陀螺仪数据。STM32微控制器:处理MPU6050传感器的数据,根据手势变化控制小车的运动。电机驱动模块:接收来自STM32的控制信号,驱动小车的电机,实现小车的前进、后退、左转和右转。小车底盘:作为整个系统的机械部分,提供移动平台。MPU6050是一款集成了3轴加速度计和3轴陀螺仪的传感器,具有高精度、低功耗和小体积等特点。它通过I2C接口与微控制器通信,可以实时采集加速度和角速度数据,广泛应用于运动检测、姿态控制和手势识别等领域。

m0_57781768的博客 2309

java弹出等待图片,PhantomJS点击图片并等待加载

我正在尝试用PhantomJS进行页面自动化 . 我的目标是能够访问网站,单击图像,并在点击加载页面后继续使用其他代码 . 为了测试这个,我正在尝试编写一个脚本,该脚本将转到PhantomJS网站上的快速入门指南的URL,然后单击PhantomJS徽标将页面带到PhantomJS主页 . 还要在点击之前和之后呈现网站的图片以确保点击有效 . 这是我目前的代码:var page = require(...

weixin_36210111的博客 323

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南

本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。

weixin_42656416的博客 322

python爬虫等待网页加载_python爬虫之动态网页的加载selenium+chrome(phantonJS)

本篇依旧来自http://www.cnblogs.com/zhaof/p/6953241.html个人只是做了一个笔记,方便相关信息的查找,具体可前往源文章。fromselenium import webdriverbrowser = webdriver.Chrome()——个人用的是Chrome,若不想显示界面可以用PhantomJS对于PhantomJS:browser = webdriver...

weixin_39636540的博客 430

机器人环境仿真软件:Gazebo_(6).传感器仿真

通过 Gazebo 和 ROS,我们可以方便地配置和使用多种传感器,进行机器人环境的仿真和调试。传感器仿真不仅帮助我们验证和测试机器人的感知能力,还可以在真实部署前发现和解决潜在的问题。本节详细介绍了如何在 Gazebo 中配置激光雷达、摄像头、IMU、声纳和 GPS 传感器,并展示了如何在 ROS 中接收和处理这些传感器数据。此外,还介绍了多传感器融合的基本方法和调试工具,希望这些内容能对你的机器人仿真工作有所帮助。

kkchenjj的博客 1388

基于Simulink进行光伏逆变器效率分析的仿真建模

特点能量转换:将光伏电池板产生的直流电转换为交流电。效率评估:分析逆变器在不同负载条件和环境条件下的效率。动态特性:考虑温度、光照强度等外部因素对逆变器效率的影响。挑战精确建模:准确地模拟光伏电池板、逆变器及其交互的动力学过程。多因素考量:需要同时考虑输入电压、电流、温度、光照强度等多种因素对逆变器效率的影响。集成度:需要与其他系统(如最大功率点跟踪MPPT算法、电网连接等)无缝集成,以实现全面的系统分析。首先明确要模拟的任务内容。输入条件(如光照强度、温度等)。

amy_mhd的博客 142

PhantomJS快速入门教程(转)

转自:http://www.woiweb.net/phantomjs-quick-use-tutorials.html 一、安装 安装包下载地址:http://phantomjs.org/download.html,包括Windows,Mac OS,Linux版本,自行选择对应 版本下载解压即可(为方便使用,可自已为phantomjs设置环境变量),其中带有一个example文件夹,里面有很...

weixin_30602505的博客 346

EPLAN中2D安装板的绘制方法示例

EPLAN中2D安装板的绘制方法示例

Robot_PLC_HMI_Automation 3215

不用selenium,phantomjs,spynner+pyquery 15行代码,爬取js动态数据

#-*-coding: utf-8 -*- import spynner   import pyquery   def process_request(url):  #定义函数         browser = spynner.Browser()  #浏览器实例化         browser.create_webview()   #创建浏览试图         browser.s...

小怪兽鲜乐园 490

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

1442面试,Python爬虫总结_python爬虫实践总结,阿里面试被放鸽子

具体方法可以把User-Agent的值改为浏览器的方式,甚至可以设置一个User-Agent池(list,数组,字典都可以),存放多个“浏览器”,每次爬取的时候随机取一个来设置request的User-Agent,这样User-Agent会一直在变化,防止被墙。cookie其实是储存在用户终端的一些被加密的数据,有些网站通过cookies来识别用户身份,如果某个访问总是高频率地发请求,很可能会被网站注意到,被嫌疑为爬虫,这时网站就可以通过cookie找到这个访问的用户而拒绝其访问。

2401_84121627的博客 1065

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

网络爬虫直播观看总结(掘金直播第十期)

前言 第一次完整看了一次技术直播,静距离地接触到了崔庆才老师,正是他的网易课程让我入了爬虫的门,成功地开发爬虫爬取到了想要的数据,体验了数据抓取的乐趣。借此良机,在这里我想简单总结整理一下我所学到的以及这次直播听到的关于爬虫的所有知识,有什么地方不够准确,欢迎大家指正,相互学习。(哭,在崔神写完之后发布,压力很大的,参考部分不少,毕竟主要按崔神思路来写的,崔神分享链接:juejin.im/post...

weixin_34187822的博客 283

使用scrapy的定制爬虫-第三章-爬虫的javascript支持

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34258782的博客 113

python 爬虫(十)selenium+phantomjs请求页面流程 + selenium的三种等待 + 案例(豆瓣读书 + 腾讯招聘)

文章目录一、selenium+phantomjs来请页面的流程1. 导包2. 创建driver对象3. 请求url4. 等待4. 获取页面内容5. 用lxml模块解析页面内容二、selenium的三种等待1. 强制等待2. 隐性等待3. 显性等待4. expected_conditions三、案例:豆瓣读书,腾讯 一、selenium+phantomjs来请页面的流程 1. 导包 from s...

langdei的博客 610

[64]python爬虫利器四之PhantomJS的用法

前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了。所以,我们需要有一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面。 其中有一个比较常用的工具,那就是PhantomJS Full web stack No browser ...

周小董 1万+

Python爬取js渲染页面方法 ---- PhantomJS

爬取某个网站页面的时候,我发现明明可以看见的src被我爬下来的时候显示为空,让我百思不得其解(大神无视),后面得知是被js渲染的页面无法直接获取他的src,最终得到了以下解决方法:使用 PhantomJS 解决 1.直接百度下载  PhantomJS  解压使用,把bin目录配置到PATH环境 2.贴代码。会的一看就懂,不会的,我也没办法 ...

秃秃的测试 2997

爬虫开源项目:SpiderFlow

官网:spider-flow Java多模块项目 图形化定义爬虫过程 爬取数据可存入数据库 1.gie下载源码 git clonegit@gitee.com:ssssssss-team/spider-flow.git 2.运行源码 3.执行源码当中的mysql 建表语句 4.查看官网上提取网页数据的抽取函数等内容 编写流程化的爬虫过程 ...

fang.lovest.yang的博客 3519

自动化测试程序--无头浏览器,检查web网页加载是否正常,不正常/失败则自动飞书/钉钉/短信报警

自动化测试代码检查网页加载是否正常,失败则第一时间飞书报警

lilaihao1030的博客 780

使用selenium操作PhantomJS的常用操作

采集淘宝商品数据的时候,主要用到了Selenium+PhantomJS。在这个过程中对淘宝的严厉反爬措施佩服至极,个人也得到了很多成长。虽然历经曲折,最终还是能正常运行自己的脚本采集数据。 这里总结一下Selenium+PhantomJS使用中常用的操作。 设置等待时间隐式等待,等同于time.sleep() driver.implicitly_wait(40)

李谦的博客 3万+

抓取网页内容抓不到,使用PhantomJS该如何正确的抓取JS加载后的网页内容?

我只是调用了其中的一个截取网页的小功能,可以完美的解析网页的js和css 而且兼容html5,不过最新的1.5版本不支持flash,所以我采用了1.4的版本,能够得到完整的网页体验。bool boolstr1 = strccUrl.Contains("下");

助力工匠精神 920

php图片未加载完显示正在加载,css实现图片未加载完成时占位显示实例分享

通过css控制,可以实现加载网络图片时,未加载完成的时候显示本地一张占位图,加载完成后显示网络图片;原理:通过在img标签的after伪元素上添加一张占位图,并且img都设置为position:relative;after设置position:absolute;img标签的src为网络图片,这样加载的时候由于网络图片没加载完成,就会显示本地图片,下面案例中的js是为了效果明显而故意延时设置img的...

weixin_30246833的博客 347

php判断数据是否加载完,判断控件是否已加载完成的代码

例如: 浏览器在解析时,首先加载 input标签,然后加载img标签。此时如果想判断img标签是否加载完成,可以在img标签的前后加上脚本,例如代码var msg = document.getElementById("imga");if (msg == null) {document.getElementById("loading").innerHTML = "正在生成图片控件...";//此处使...

weixin_29138345的博客 237

php和服务器怎么响应,从php启动phantomjs服务器并等待它的响应

我想从我的PHP脚本运行一个phantomjs服务器,然后对它进行curl请求并读取它的响应(在最终版本中将给出生成pdf的路径).从控制台运行phantomjs服务器文件,然后在浏览器中导航到它的地址时,一切正常.这是server.js文件:var server,service,page = require('webpage').create(),address,output,html = 'F...

weixin_39645306的博客 413
上一篇: Selenium+phantomJS+Python 操作cookie实现自动登录(以音悦台为例)
下一篇: Selenium 与 Spynner 切换frame(iframe)方法对比
mighty13
博客等级 码龄23年 728粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值