• selenium自动化chrome


    1. from selenium import webdriver
    2. from selenium.common.exceptions import NoSuchElementException
    3. from selenium.webdriver.common.by import By
    4. from selenium.webdriver.chrome.options import Options
    5. from fake_useragent import UserAgent
    6. # 启动 Chrome 浏览器
    7. chrome_options = webdriver.ChromeOptions()
    8. chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
    9. # chrome_options.add_argument("executable_path='C:\\Users\\wangkejun\\Downloads\\chromedriver-win64\\chromedriver.exe'")
    10. chrome_options.add_argument('--disable-gpu') # 禁用 GPU 加速
    11. chrome_options.add_argument('--disable-images') # 禁用图片加载
    12. chrome_options.add_argument('--no-sandbox') # 无沙盒模式
    13. chrome_options.add_argument('disable-blink-features=AutomationControlled') #去掉webdriver痕迹
    14. chrome_options.add_argument('--disable-javascript') # 禁用JavaScript
    15. chrome_options.add_argument('-ignore-certificate-errors')#忽略证书错误
    16. chrome_options.add_argument('-ignore -ssl-errors') #忽略证书错误
    17. chrome_options.add_argument('window-size=1377x768')#指定浏览器分辨率
    18. chrome_options.add_argument('disable-infobars')# 隐藏Chrome正在受到自动软件的控制
    19. chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])#设置开发者模式启动,该模式下webdriver属性为正常值
    20. # 生成随机的 User-Agent
    21. user_agent = UserAgent().random
    22. chrome_options.add_argument(f'user-agent="{user_agent}"')
    23. driver = webdriver.Chrome(options=chrome_options)
    24. # 执行 CDP 命令来修改 navigator.webdriver
    25. script = """
    26. Object.defineProperty(navigator, 'webdriver', {
    27. get: () => undefined
    28. })
    29. """
    30. driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
    1. chrome_options = webdriver.ChromeOptions() - 创建 Chrome 浏览器的选项对象。

    2. chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" - 指定 Chrome 浏览器的二进制文件路径。

    3. chrome_options.add_argument('--disable-gpu') - 禁用 GPU 加速,可以提高脚本在浏览器中的稳定性和性能。

    4. chrome_options.add_argument('--disable-images') - 禁用图片加载,可以加快页面加载速度。

    5. chrome_options.add_argument('--no-sandbox') - 在无沙盒模式下运行 Chrome 浏览器,可以解决某些特定环境下的问题。

    6. user_agent = UserAgent().random - 生成随机的 User-Agent,用于伪装浏览器身份。

    7. chrome_options.add_argument(f'user-agent="{user_agent}"') - 将生成的随机 User-Agent 添加到 Chrome 浏览器选项中。

    8. driver = webdriver.Chrome(options=chrome_options) - 使用指定的选项启动 Chrome 浏览器。

    9. script = """ ... """ - 定义一个 JavaScript 脚本,用于修改 navigator.webdriver 属性。

    10. driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script}) - 使用 Chrome DevTools Protocol (CDP) 的命令,在每个新页面加载时执行指定的 JavaScript 脚本,从而修改 navigator.webdriver 属性。这可以用于绕过一些反爬虫机制。

  • 相关阅读:
    光流法动目标检测
    Java实现常用的排序算法(快速排序、归并排序、基数排序)
    24、CSS基础——定位以及透明通道
    Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍
    离线安装腾讯x5内核(附安装包下载地址)
    中国人民大学与加拿大女王大学金融硕士项目——花会沿路盛开,我们未来的路也是
    世界银行使用.NET 7开发的免费电子问卷制作系统Survey Solution
    MySQL——事务(说明及其细节)
    专精特新!2024年湖北省专精特新中小企业申报奖励、申报条件整理
    【zmq】ZeroMQ安装与入门案例
  • 原文地址:https://blog.csdn.net/EaSoNgo111/article/details/132757571