使用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和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python查询IP地址归属完整代码
Jun 21 Python
Python进阶之尾递归的用法实例
Jan 31 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
python 弧度与角度互转实例
Apr 15 Python
Python selenium爬虫实现定时任务过程解析
Jun 08 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python interpolate插值实例
Jul 06 Python
python如何进入交互模式
Jul 06 Python
Python3如何在服务器打印资产信息
Aug 27 Python
如何用python批量调整视频声音
Dec 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模板引擎Smarty的缓存使用总结
2014/04/24 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
JavaScript 原型与继承说明
2010/06/09 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
SQL中where和having的区别
2012/06/17 面试题
公务员年总结的自我评价
2013/10/25 职场文书
本科毕业生自荐信
2014/05/26 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
2019消防宣传标语!
2019/07/10 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang