Selenium反屏蔽处理
Selenium自动化过程,在浏览器内会显示如下字样

当出现此内容时,有些网站就会判定是机器在进行操作,然后网站会加载防机器操作程序,如下图滑块验证

触发反机器操作的原理大概如下

解决方法

具体代码,加入到脚本中,替代定义浏览器即可
option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=option)
browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
})
执行后就不会有显示浏览器正受到自动软件的控制,也没有验证码了

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=option)
browser.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
}) #browser = webdriver.Chrome() #browser = webdriver.Chrome(ChromeDriverManager().install()) browser.get('http://www.baidu.com')
search = browser.find_element_by_id('kw')
search.send_keys('python')
search.send_keys(Keys.ENTER) time.sleep(20) #browser.close()
Selenium反屏蔽处理的更多相关文章
- Python爬虫小白入门(四)PhatomJS+Selenium第一篇
一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...
- Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM 普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...
- selenium元素定位篇
Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- 幼儿园的 selenium
from selenium import webdriver *固定开头 b=webdriver.Firefox() *打开火狐浏览器 browser. ...
- 使用selenium编写脚本常见问题(一)
前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1 ...
- 关于selenium RC的脚本开发
第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你 ...
- 基于python的selenium自动化测试环境安装
1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第 ...
- Selenium+python 配置
1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). ...
- selenium 使用action进行鼠标,键盘操作
<!--test.html--> <html> <head> <title>Set Timeout</title> <script&g ...
随机推荐
- Codeforces Round 957 (Div. 3)
题目链接:Codeforces Round 957 (Div. 3) 总结:E不懂,F差一个set去重 A. Only Pluses fag:枚举 B. Angry Monk fag:模拟 Solut ...
- 一、CAN协议基础知识
一.CAN总线基础知识 注:参考江科大教程,瑞萨电子<CAN入门教程>. CAN (Controller Area Network),是ISO国际标准化的串行通信协议.CAN协议经过ISO ...
- 0425-FileRead字符输入流
package A10_IOStream; import java.awt.datatransfer.StringSelection; import java.io.IOException; impo ...
- react中类似vue的插槽this.props.children的用法
父组件 <TestHanderClick bg="blue"> <p> 如果我要显示的话,父组件是双标签,子组件中有this.props.children& ...
- Nodify学习 四:预先连接
前置 预先连接 可以从连接器创建预先连接,并可以放置在ItemContainer或Connector上(如果AllowOnlyConnectors为false). 预先连接的Content可以使用Co ...
- nvme磁盘故障注入方法
本文分享自天翼云开发者社区<nvme磁盘故障注入方法>,作者:曹****飞 在存储系统中,磁盘的故障是很可能出现的问题.存储软件的设计需要对故障进行处理,提高系统的健壮性.然而磁盘的故障是 ...
- 已有天翼云Ubuntu云主机,搭建幻兽帕鲁服务器
本文为您介绍使用您已有的天翼云Ubuntu云主机搭建幻兽帕鲁服务器的操作. 操作前提 如果您尚未购买天翼云云主机,推荐您使用更简单快捷的一键部署方案,具体请参考:镜像一键部署Palworld幻兽帕鲁服 ...
- Q:xml 需要转义的字符
XML实体中不允许出现"&","<",">"等特殊字符,否则XML语法检查时将出错,如果编写的XML文件必须包含这些字符 ...
- 降阶公式/ARC173F
ARC173F 题意 给定 \(n,A,B\),初始有一个集合 \(S=\{1,2,\dots,A,A +1,A+2,\dots,A+B\}\).进行如下操作 \(n-1\) 次使得剩下 \(n\) ...
- 使用iceberg-使用Iceberg数据湖需要注意的点
一.资料准备 1.mysql地址选择 因为阿里云只读节点binlog保留时间短,需要用读写集群地址.可以登录阿里云控制台查看地址是只读还是读写,不清楚的话可以找dba要读写地址. 二.Iceberg概 ...