使用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实现爬虫下载美女图片
Jul 14 Python
python轻松查到删除自己的微信好友
Jan 10 Python
详解Python函数作用域的LEGB顺序
May 14 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
简单实现Python爬取网络图片
Apr 01 Python
分析python请求数据
Aug 19 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
python第三方库学习笔记
Feb 07 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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中exec函数和shell_exec函数的区别
2014/08/20 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
jquery实现弹窗(系统提示框)效果
2019/12/10 jQuery
js实现移动端吸顶效果
2020/01/08 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
Python装饰器用法示例小结
2018/02/11 Python
Python中property函数用法实例分析
2018/06/04 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
证婚人经典证婚词
2014/01/09 职场文书
小学生检讨书大全
2014/02/06 职场文书
开业庆典主持词
2014/03/21 职场文书
关爱留守儿童标语
2014/06/18 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
MySQL 数据类型详情
2021/11/11 MySQL