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 

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

谢谢!!

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值