Selenium模块的使用(二)
selenium处理iframe
- 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
- 动作链(拖动):from selenium.webdriver import ActionChains
- 实例化一个动作链对象:action = ActionChains(bro)
- click_and_hold(div):长按且点击操作
- move_by_offset(x,y)
- perform()让动作链立即执行
- action.release()释放动作链对象
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
bro.get('https://c.runoob.com/front-end/61')
# iframe标签 可在当前页面下嵌套子页面
# 获得当前页面的子页面的标签
bro.switch_to.frame('iframeResult') # 改变浏览器标签定位的作用域
div = bro.find_element_by_id('ha')
action = ActionChains(bro) # 实例化动作链
action.click_and_hold(div) # 点击长按指定的标签
for i in range(5):
# move_by_offse(x,y) x水平方向 y竖直方向 移动
# perform() 执行动作链操作
action.move_by_offset(16,0).perform()
time.sleep(0.3) # 释放动作链
action.release()
bro.quit()
Selenium实现模拟登录
示例:QQ空间模拟登录
from selenium import webdriver
import time
bro = webdriver.Chrome(executable_path='./chromedriver')
# 发送请求
bro.get('https://qzone.qq.com/') # # 改变浏览器标签定位的作用域
bro.switch_to.frame('login_frame') # 点击账号密码登陆
btn = bro.find_element_by_id('switcher_plogin') # 点击按钮
btn.click()
time.sleep(1) # 找到用户名 密码输入框
user = bro.find_element_by_id('u')
pwd = bro.find_element_by_id('p') # 输入用户名 密码
user.send_keys('1121434897')
time.sleep(1)
pwd.send_keys('123456')
time.sleep(1) # 找到登录按钮
submit = bro.find_element_by_id('login_button') # 点击按钮
submit.click()
time.sleep(2)
bro.quit()
检测规避
现在不少大网站有对selenium采取了监测机制。比如正常情况下我们用浏览器访问淘宝等网站的 window.navigator.webdriver的值为
undefined。而使用selenium访问则该值为true。那么如何解决这个问题呢?
只需要设置Chromedriver的启动参数即可解决问题。在启动Chromedriver之前,
为Chrome开启实验性功能参数excludeSwitches
,它的值为[‘enable-automation’]
,完整代码如下:
from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = Chrome(options=option)
Selenium模块的使用(二)的更多相关文章
- python Web抓取(二)selenium模块的使用、对浏览器的按键操作及错误处理
建议以下帖子: 教你在Windows上搭建Python+Selenium环境:https://blog.csdn.net/huilan_same/article/details/52888262 py ...
- 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...
- 爬虫基础(三)-----selenium模块应用程序
摆脱穷人思维 <三> : 培养"目标导向"的思维: 好项目永远比钱少,只要目标正确,钱总有办法解决. 一 selenium模块 什么是selenium?seleni ...
- 三: 爬虫之selenium模块
一 selenium模块 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. selenium最初是一个自动化测试工具, ...
- 7 selenium 模块
selenium 模块 一.简介 1.Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. 2.自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接 ...
- 03 爬虫之selenium模块
selenium模块 1.概念,了解selenium 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. seleniu ...
- 浏览器行为模拟之requests、selenium模块
requests模块 前言: 通常我们利用Python写一些WEB程序.webAPI部署在服务端,让客户端request,我们作为服务器端response数据: 但也可以反主为客利用Python的re ...
- 爬虫模块之selenium模块
一 模块的介绍 selenium模块最开始是一个自动化测试的工具,驱动浏览器完全模拟浏览器自动测试. from selenium import webdriver # 驱动浏览器 browser=we ...
- Python学习--Selenium模块学习(2)
Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...
- 3、爬虫之selenium模块
一 selenium模块 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. selenium最初是一个自动化测试工具, ...
随机推荐
- Koordinator v0.7: 为任务调度领域注入新活力
简介: 在这个版本中着重建设了机器学习.大数据场景需要的任务调度能力,例如 Coscheduling.ElasticQuota 和精细化的 GPU 共享调度能力.并在调度问题诊断分析方面得到了增强,重 ...
- 万节点规模云服务的 SRE 能力建设
简介: 随着越来越多企业以容器作为系统底座,那么阿里云的云服务又是如何进行SRE规划呢?下文将由资深SRE工程师拆解2 万节点规模云服务背后的 SRE 能力建设,立即点击观看! 作者:宋傲(凡星) ...
- 进一步释放技术红利,阿里云推出全新内存增强型实例re6,性能提升30%
5月7日,国内最大云计算厂商阿里云宣布推出全新一代内存增强型实例,提供1:14.8超大内存比内存容量,满足内存型数据库如SAP HANA.Redis等应用,充分释放技术红利,帮助线下企业快速上云,完成 ...
- [TP5] 浅谈 ThinkPHP 的 Hook 行为事件及监听执行
TP5 中使用 \think\Hook::add('xx', '\app\xxx\behavior\Xx') 注册行为. 也可以在 application/tags.php 中统一注册. 在需要监听执 ...
- DE10-Lite输入/出高/低电平说明
DE10-Lite输入/出高/低电平说明 DE10-Lite实验板上有一些设备可以输入/出高/低电平,说明如下: HEX 7-segment LED displays (active low)共阳极 ...
- 生成带重复的笛卡尔乘积过程 Cartesian Product with Repetition
目录 What is Cartesian Product with Repetition Code Demo What is Cartesian Product with Repetition 比如说 ...
- 【强化学习】Markov Decision processes【二】
目录 Markov Decision processes Markov Process Markov reward process Markov Decision processes 马尔可夫决策过程 ...
- go http请求如果参数中带有"等特殊字符,参数传输可能会出现问题
编码完整的URL url.QueryEscape(urlStr) 编码完整的URL 如果我们要对完整的 URL 进行编码呢? 就是PHP中 urlencode() 函数的功能. 在 GO 语言下可以直 ...
- nim 2. 变量与函数
对于系统的学习,官网上的相应的资料, 这里通过一个简单的例程,演示一下. 这个例程里有一个根据半径计算圆面积的方法,以及调用的示例: 演示代码 1 #计算圆的面积 2 proc calcArea(r: ...
- three.js 物体要使用光线投射技术,计算是否点击位置与物体有交叉
原生 DOM 还用原生的 DOM 点击事件,要注意开启 pointerEvents CSS3DRenderer 是一个新的渲染器,需要在渲染循环调用并适配 labelRenderer.domEleme ...