使用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读写Excel文件的实例
Nov 01 Python
python二分查找算法的递归实现方法
May 12 Python
Python中对象的引用与复制代码示例
Dec 04 Python
python3安装speech语音模块的方法
Dec 24 Python
Python基础之文件读取的讲解
Feb 16 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
Oct 28 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
python实现图片插入文字
Nov 26 Python
python字符串下标与切片及使用方法
Feb 13 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
python 字典和列表嵌套用法详解
Jun 29 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制作简单的内容采集器的代码
2007/11/28 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
PHP pear安装配置教程
2016/05/14 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
中英文求职信范文
2014/01/27 职场文书
推广普通话演讲稿
2014/05/23 职场文书
中学教师读书笔记
2015/07/01 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书