使用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的净值数据接口调用示例分享
Mar 15 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python用户管理系统
Mar 13 Python
python实现两个文件合并功能
Apr 01 Python
基于python的ini配置文件操作工具类
Apr 24 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
python 高阶函数简单介绍
Feb 19 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
ES6的新特性概览
2016/03/10 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
python实现在目录中查找指定文件的方法
2014/11/11 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
个人应聘自我评价分享
2013/11/18 职场文书
大学生实习感言
2014/01/16 职场文书
战友聚会邀请函
2014/01/18 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
作风建设剖析材料
2014/10/06 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
鉴史问廉观后感
2015/06/10 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL