from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent
# 启动 Chrome 浏览器
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
# chrome_options.add_argument("executable_path='C:\\Users\\wangkejun\\Downloads\\chromedriver-win64\\chromedriver.exe'")
chrome_options.add_argument('--disable-gpu') # 禁用 GPU 加速
chrome_options.add_argument('--disable-images') # 禁用图片加载
chrome_options.add_argument('--no-sandbox') # 无沙盒模式
chrome_options.add_argument('disable-blink-features=AutomationControlled') #去掉webdriver痕迹
chrome_options.add_argument('--disable-javascript') # 禁用JavaScript
chrome_options.add_argument('-ignore-certificate-errors')#忽略证书错误
chrome_options.add_argument('-ignore -ssl-errors') #忽略证书错误
chrome_options.add_argument('window-size=1377x768')#指定浏览器分辨率
chrome_options.add_argument('disable-infobars')# 隐藏Chrome正在受到自动软件的控制
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])#设置开发者模式启动,该模式下webdriver属性为正常值
# 生成随机的 User-Agent
user_agent = UserAgent().random
chrome_options.add_argument(f'user-agent="{user_agent}"')
driver = webdriver.Chrome(options=chrome_options)
# 执行 CDP 命令来修改 navigator.webdriver
script = """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
-
chrome_options = webdriver.ChromeOptions()
- 创建 Chrome 浏览器的选项对象。 -
chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
- 指定 Chrome 浏览器的二进制文件路径。 -
chrome_options.add_argument('--disable-gpu')
- 禁用 GPU 加速,可以提高脚本在浏览器中的稳定性和性能。 -
chrome_options.add_argument('--disable-images')
- 禁用图片加载,可以加快页面加载速度。 -
chrome_options.add_argument('--no-sandbox')
- 在无沙盒模式下运行 Chrome 浏览器,可以解决某些特定环境下的问题。 -
user_agent = UserAgent().random
- 生成随机的 User-Agent,用于伪装浏览器身份。 -
chrome_options.add_argument(f'user-agent="{user_agent}"')
- 将生成的随机 User-Agent 添加到 Chrome 浏览器选项中。 -
driver = webdriver.Chrome(options=chrome_options)
- 使用指定的选项启动 Chrome 浏览器。 -
script = """ ... """
- 定义一个 JavaScript 脚本,用于修改navigator.webdriver
属性。文章来源:https://www.toymoban.com/news/detail-707830.html -
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
- 使用 Chrome DevTools Protocol (CDP) 的命令,在每个新页面加载时执行指定的 JavaScript 脚本,从而修改navigator.webdriver
属性。这可以用于绕过一些反爬虫机制。文章来源地址https://www.toymoban.com/news/detail-707830.html
到了这里,关于selenium自动化chrome的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!