使用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对文件操作知识汇总
May 15 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
深入理解python对json的操作总结
Jan 05 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
pycharm显示远程图片的实现
Nov 04 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
Python descriptor(描述符)的实现
Nov 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
php模板引擎技术简单实现
2016/03/15 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
Js四则运算函数代码
2012/07/21 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
django url到views参数传递的实例
2019/07/19 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
Java面向对象面试题
2016/12/26 面试题
考博专家推荐信模板
2013/12/02 职场文书
主题酒店策划书
2014/01/28 职场文书
演讲稿的写法
2014/05/19 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
电影地道战观后感
2015/06/04 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书