使用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 yield使用方法示例
Dec 04 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
python浪漫表白源码
Apr 05 Python
Python字符串的一些操作方法总结
Jun 10 Python
详解Python绘图Turtle库
Oct 12 Python
Python中断多重循环的几种方式详解
Feb 10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python学习之os包使用教程详解
Mar 21 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 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
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
教你php如何实现验证码
2016/01/20 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
python使用PyGame模块播放声音的方法
2015/05/20 Python
python 除法保留两位小数点的方法
2018/07/16 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
保护环境的建议书
2014/03/12 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
忠诚教育心得体会
2014/09/03 职场文书
招标授权委托书样本
2014/09/23 职场文书
置业顾问岗位职责
2015/02/09 职场文书
黄埔军校观后感
2015/06/10 职场文书
大学生受助感言
2015/08/01 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
table不让td文字溢出操作方法
2022/12/24 HTML / CSS