使用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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
用Python实现协同过滤的教程
Apr 08 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Anaconda入门使用总结
Apr 05 Python
《与孩子一起学编程》python自测题
May 27 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
Python常用模块之requests模块用法分析
May 15 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 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
destoon复制新模块的方法
2014/06/21 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
Python调用服务接口的实例
2019/01/03 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
关于迟到的检讨书
2014/01/26 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
机械专业求职信
2014/05/25 职场文书
公务员考察材料范文
2014/12/23 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
法律意见书范本
2015/06/04 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书