使用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中使用Neo4j数据库的教程
Apr 16 Python
python实现linux下使用xcopy的方法
Jun 28 Python
用Python的Flask框架结合MySQL写一个内存监控程序
Nov 07 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
Django基础知识与基本应用入门教程
Jul 20 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
老生常谈python中的重载
Nov 11 Python
python装饰器常见使用方法分析
Jun 26 Python
Python动态导入模块和反射机制详解
Feb 18 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
python爬取音频下载的示例代码
Oct 19 Python
使用python对excel表格处理的一些小功能
Jan 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
开发大型PHP项目的方法
2006/10/09 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
判断脚本加载是否完成的方法
2009/05/26 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python中__call__用法实例
2014/08/29 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
3种python调用其他脚本的方法
2020/01/06 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
介绍一下linux的文件权限
2012/02/15 面试题
计算机应用专业自荐信
2014/07/05 职场文书
业务员岗位职责
2015/02/03 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
Python时间操作之pytz模块使用详解
2022/06/14 Python