使用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 相关文章推荐
Python中的进程分支fork和exec详解
Apr 11 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
python线程池threadpool实现篇
Apr 27 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 Python
Python Web版语音合成实例详解
Jul 16 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
python简单利用字典破解zip文件口令
Sep 07 Python
python 实现性别识别
Nov 21 Python
Python词云的正确实现方法实例
May 08 Python
Pytorch使用shuffle打乱数据的操作
May 20 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
通过文字传递创建的图形按钮
2006/10/09 PHP
php 输出双引号"与单引号'的方法
2010/05/09 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
js中url对象化管理分析
2017/12/29 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python线程指南详细介绍
2017/01/05 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
报考公务员诚信承诺书
2014/08/29 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript