使用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计算书页码的统计数字问题实例
Sep 26 Python
用Python进行TCP网络编程的教程
Apr 29 Python
python简单实现基数排序算法
May 16 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
python3 读写文件换行符的方法
Apr 09 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
python实现扫雷小游戏
Apr 24 Python
用python写爬虫简单吗
Jul 28 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
详解pandas apply 并行处理的几种方法
Feb 24 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
多重?l件?合查?(二)
2006/10/09 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python面向对象之继承代码详解
2018/01/29 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
numba提升python运行速度的实例方法
2021/01/25 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
IT工程师岗位职责
2014/07/04 职场文书
研究生个人学年总结
2015/02/14 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
2016教师节感恩话语
2015/12/09 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Golang获取List列表元素的四种方式
2022/04/20 Golang