使用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的time模块中的常用方法整理
Jun 18 Python
Python实现线程池代码分享
Jun 21 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
python目录与文件名操作例子
Aug 28 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
解决python执行较大excel文件openpyxl慢问题
May 15 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Python中tqdm的使用和例子
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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
PHP 加密与解密的斗争
2009/04/17 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
bootstrap table实例详解
2017/01/06 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
对python函数签名的方法详解
2019/01/22 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Django获取应用下的所有models的例子
2019/08/30 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
基于python图像处理API的使用示例
2020/04/03 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
人事专员职责
2014/02/22 职场文书
2014年环保工作总结
2014/11/26 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript