IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Selenium 防止被检测添加请求头 -> 正文阅读

[开发测试]Selenium 防止被检测添加请求头

?一. 参数如:?

启动参数作用
--user-agent=""设置请求头的User-Agent
--window-size=1366,768设置浏览器分辨率(窗口大小)
--headless无界面运行(无窗口)
--start-maximized最大化运行(全屏窗口)
--incognito隐身模式(无痕模式)
--disable-javascript禁用javascript
--disable-infobars

禁用浏览器正在被自动化程序控制的提示??

1 . 防止网站识别Selenium代码(针对老版本):

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions

option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = Chrome(options=option)

driver.get("http://fudan.bbs.kaoyan.com/")
driver.implicitly_wait(10)

新版本如下:

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions

options = ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)

driver= Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
? "source": """
? ? Object.defineProperty(navigator, 'webdriver', {
? ? ? get: () => undefined
? ? })
? """
})

driver.get("http://fudan.bbs.kaoyan.com/")
driver.implicitly_wait(10)

2.禁用图片加载:

prefs = {
    'profile.default_content_setting_values' : {
        'images' : 2
    }
}
options.add_experimental_option('prefs',prefs)


prefs = {"profile.managed_default_content_settings.images": 2}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
#或者 ?使用下面的设置, 提升速度
options.add_argument('blink-settings=imagesEnabled=false')

3.禁用浏览器弹窗:

prefs = { ?
? ? 'profile.default_content_setting_values' : ?{ ?
? ? ? ? 'notifications' : 2 ?
? ? ?} ?
} ?
options.add_experimental_option('prefs',prefs)?

?4.添加代理

?
from selenium import webdriver
# 静态IP:192.168.12.43
PROXY = "proxy_host:proxy:port"
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "noProxy": None,
    "proxyType": "MANUAL",
    "class": "org.openqa.selenium.Proxy",
    "autodetect": False
}
driver = webdriver.Chrome(desired_capabilities = desired_capabilities)

?

5.添加多个cookie

driver = webdriver.Chrome()
driver.delete_all_cookies()? ? ? ? ? ? ? ????????????????? # 删除原来的 所有cookies
for cookie in cookies:
? ? driver.add_cookie(cookie)

6.常用的参数如下:

from selenium import webdriver


options = webdriver.ChromeOptions()                                             # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
options.add_experimental_option('excludeSwitches', ['enable-automation'])       # 进行自动化伪装成 开发者模式
options.add_argument("--headless")                                              # 为Chrome配置无头模式
options.add_argument('--disable-javascript')                                    # 禁用javascript
options.add_experimental_option('prefs', {
    # "download.default_directory": 'D:\pdf文件22-1-6',                          # Change default directory for downloads
    "download.prompt_for_download": False,                                      # To auto download the file
    "download.directory_upgrade": True,
    "plugins.always_open_pdf_externally": True,                                 # It will not show PDF directly in chrome 修改谷歌配置 访问pdf文档时总是下载
    "profile.managed_default_content_settings.images": 2,                       #  禁止图片加载
    'useAutomationExtension': False
})

# 更换头部
user_agent = (
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
    )
options.add_argument('user-agent=%s'%user_agent)

driver = webdriver.Chrome(options=options)

二、 chrome实用参数 
  –user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
  –disk-cache-dir=”[PATH]“ 指定缓存Cache路径
  –disk-cache-size= 指定Cache大小,单位Byte
  –first run 重置到初始状态,第一次运行
  –incognito 隐身模式启动
  –disable-javascript 禁用Javascript
  –omnibox-popup-count=”num” 将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
  –user-agent=”xxxxxxxx” 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
  –disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
  –disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
  –disable-java 禁用java
  –start-maximized 启动就最大化
  –no-sandbox 取消沙盒模式
  –single-process 单进程运行
  –process-per-tab 每个标签使用单独进程
  –process-per-site 每个站点使用单独进程
  –in-process-plugins 插件不启用单独进程
  –disable-popup-blocking 禁用弹出拦截
  –disable-plugins 禁用插件
  –disable-images 禁用图像
  –incognito 启动进入隐身模式
  –enable-udd-profiles 启用账户切换菜单
  –proxy-pac-url 使用pac代理 [via 1/2]
  –lang=zh-CN 设置语言为简体中文
  –disk-cache-dir 自定义缓存目录
  –disk-cache-size 自定义缓存最大值(单位byte)
  –media-cache-size 自定义多媒体缓存最大值(单位byte)
  –bookmark-menu 在工具 栏增加一个书签按钮
  –enable-sync 启用书签同步
  –single-process 单进程运行Google Chrome
  –start-maximized 启动Google Chrome就最大化
  –disable-java 禁止Java
  –no-sandbox 非沙盒模式运行

主要参考链接:https://blog.csdn.net/u013440574/article/details/81911954?

如有侵权,告知我及时删除。????????

谢谢!!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-14 02:17:03  更:2022-01-14 02:19:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:50:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码