You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否降低基于Selenium实现的爬虫应用的网络消耗?

降低Selenium爬虫网络消耗的可行方案

针对你用Selenium爬取带Cloudflare防护的站点(https://precodahora.tcepb.tc.br/)的场景,虽然确实需要加载页面核心内容来绕过反爬,但还是有不少方法能减少额外的网络消耗:

  • 禁用非必要资源加载
    可以通过浏览器配置禁止加载图片、CSS、第三方广告/统计脚本这类对爬取逻辑没用的资源。注意Cloudflare验证依赖JS,所以不能完全禁用JS,只禁非必要的。比如Chrome的配置:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    # 禁止图片、CSS加载
    chrome_options.add_experimental_option("prefs", {
        "profile.managed_default_content_settings.images": 2,
        "profile.managed_default_content_settings.css": 2,
        # 可选:禁用弹窗
        "profile.default_content_setting_values.notifications": 2
    })
    driver = webdriver.Chrome(options=chrome_options)
    
  • 启用Headless无头模式
    无头模式不需要渲染可视化界面,能大幅减少浏览器的内存和网络开销,同时不影响Cloudflare的JS验证流程:

    chrome_options.add_argument("--headless=new")  # 新版Chrome无头模式,更接近正常浏览器
    chrome_options.add_argument("--disable-gpu")
    
  • 拦截并跳过非必要请求
    利用Chrome DevTools Protocol(CDP)拦截所有请求,只允许目标站点的核心接口和页面资源通过,过滤掉第三方广告、追踪脚本等:

    driver.execute_cdp_cmd('Network.setBlockedURLs', {
        "urls": [
            "*://*.google-analytics.com/*",
            "*://*.adservice.google.com/*",
            "*://*.doubleclick.net/*",
            # 根据站点实际情况添加更多要拦截的第三方域名
        ]
    })
    driver.execute_cdp_cmd('Network.enable', {})
    
  • 复用浏览器实例
    不要每次爬取都启动新的浏览器进程,复用同一个浏览器实例处理多个请求,避免重复加载浏览器内核、初始化配置带来的网络消耗。

  • 启用浏览器缓存
    配置浏览器使用本地缓存,让重复访问同一页面时,直接加载缓存的静态资源,减少重复的网络请求:

    chrome_options.add_argument("--disk-cache-size=1073741824")  # 设置缓存大小为1GB
    chrome_options.add_argument("--enable-features=NetworkService,NetworkServiceInProcess")
    

需要注意的是,这些优化都是减少额外的、非必要的网络请求,核心的页面内容和Cloudflare验证所需的资源还是必须加载的,但能有效降低整体网络消耗,缓解你的网络使用限制问题。

内容的提问来源于stack exchange,提问作者Daniel Bailo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:07:11