使用Python爬取弹出窗口信息的实例


Posted in Python onMarch 14, 2020

此文仅当学习笔记用.

这个实例是在Python环境下如何爬取弹出窗口的内容,有些时候我们要在页面中通过点击,然后在弹出窗口中才有我们要的信息,所以平常用的方法也许不行.

这里我用到的是Selenium这个工具, 不知道的朋友可以去搜索一下. 但是安装也是很费事的. 而且我用的浏览器是firefox,不用IE是因为好像新版的IE在Selenium下有问题,我也是百思不得其解, 网上也暂时没找到好的办法.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os,time
browser=webdriver.Firefox(executable_path='d:\\Anaconda\\pkgs\\spyder-3.2.8-py36_0\\geckodriver.exe') #括号中的也是非典型的安装firefox驱动的方法,常规的方法我一直试的不行,但这种方法包管行.
browser.get('http://XXX.XXX.com/fenxi/yazhi-734155') #输入你的目标网址
time.sleep(3) #打开网址后休息3秒钟,可用可不用
browser.find_element_by_xpath('//*[@id="6"]/td[4]').click() #找到想要点击的元素,然后进行点击动作,让窗口弹出来
handle=browser.current_window_handle #获得当前窗口,也就是弹出的窗口句柄,什么是句柄我也解释不清楚,反正它代表当前窗口
browser.switch_to_window(handle) #转到当前弹出窗口
s=browser.find_element_by_xpath('//*[@id="tipdiv"]/div[2]/table/tbody') #找到装有你要信息的元素
print(s.text) #打印文本内容
time.sleep(2) #休息2秒,让浏览器喘口气
browser.find_element_by_xpath('//*[@id="link106"]').click() #最后关掉弹出窗口. 这又是一个非典型方法,我是直接找到小窗口的叉叉来点击关掉了,实际上Selinium有关闭当前窗口的方法,也就是close()或者quit(),但问题是搞来搞去不行啊?我的理解是目前的窗口依然是那个弹出的窗口,但handle.close等其它方法都不行. 所以我干脆用这样的方法,找到叉叉的元素,然后点击.

最后找元素我还是喜欢用xpath,有个小窍门,那就是在浏览器的开发者工具那里面,找到需要元素的元代码,然后右键选择Copy Xpath就有了,相当方便.

补充知识:python自动化测试中,点击【查看】按钮,弹窗出不来怎么办?

一、在用python写UI自动化测试的时候,可能会遇到明明用.click()点击了【查看】按钮,但是弹窗弹不出来;

遇到这个问题的时候,不妨可以试试模拟键盘的操作,利用.send_keys(Keys.ENTER)便可以解决这个问题;

代码:

driver.find_element_by_xpath(“//*[@id='main']/div/div[3]/div/div/div[2]/div/div[2]/div[2]/div/div[2]/table/tbody/tr/td[9]/div/button/span”).click()

修改为:

driver.find_element_by_xpath(“//*[@id='main']/div/div[3]/div/div/div[2]/div/div[2]/div[2]/div/div[2]/table/tbody/tr/td[9]/div/button/span”).send_keys(Keys.ENTER)

使用Python爬取弹出窗口信息的实例

以上这篇使用Python爬取弹出窗口信息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
python配置grpc环境
Jan 01 Python
Python OpenCV实现视频分帧
Jun 01 Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Python函数的默认参数设计示例详解
Dec 01 Python
Python中断多重循环的几种方式详解
Feb 10 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
python安装和pycharm环境搭建设置方法
May 27 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
Python极值整数的边界探讨分析
Sep 15 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 #Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 #Python
在Django中预防CSRF攻击的操作
Mar 13 #Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 #Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 #Python
django 取消csrf限制的实例
Mar 13 #Python
django-csrf使用和禁用方式
Mar 13 #Python
You might like
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JS倒计时实例_天时分秒
2017/08/22 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python中的作用域规则详解
2015/01/30 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python笔试面试题小结
2019/09/07 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
英语系毕业生自荐信
2013/10/31 职场文书
培训自我鉴定
2014/01/31 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2014年手术室工作总结
2014/11/26 职场文书
创卫工作总结2015
2015/04/22 职场文书
谢师宴学生致辞
2015/07/27 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书