使用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之有容乃大的list(3)
Sep 15 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
详解python里的命名规范
Jul 16 Python
pandas数据筛选和csv操作的实现方法
Jul 02 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Python代码中如何读取键盘录入的值
May 27 Python
一起来学习Python的元组和列表
Mar 13 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
php中$this->含义分析
2009/11/29 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
JavaScript的public、private和privileged模式
2009/12/28 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
《跨越百年的美丽》教学反思
2014/02/11 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
政治表现评语
2014/05/04 职场文书
大学生应聘求职信
2014/05/26 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js