使用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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
Python迭代器定义与简单用法分析
Apr 30 Python
python3+requests接口自动化session操作方法
Oct 13 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
python3实现弹弹球小游戏
Nov 25 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
Python批量处理csv并保存过程解析
May 16 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php在线打包程序源码
2008/07/27 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
php动态函数调用方法
2015/05/21 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php实现留言板功能
2017/03/05 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python创建xml文件示例
2017/03/22 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python实现的读写json文件功能示例
2018/06/05 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
Python中print函数简单使用总结
2019/08/05 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
python 实现单例模式的5种方法
2020/09/23 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
Linux如何为某个操作添加别名
2013/03/01 面试题
后勤部长岗位职责
2013/12/14 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
个人年底工作总结
2015/03/10 职场文书
医院员工辞职信范文
2015/05/12 职场文书
高中团支书竞选稿
2015/11/21 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android