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

如何在运行Python版Selenium时检测Adobe Analytics事件的发送?

捕获Selenium交互时的Adobe Analytics事件(无需额外代理)

不用折腾Browsermob-proxy,直接利用Chrome DevTools Protocol(CDP)结合Selenium就能实现,完全兼容你已有的代理配置,步骤如下:

核心思路

通过Selenium调用Chrome的CDP接口,监听浏览器的网络请求,过滤出Adobe Analytics的收集请求(通常URL包含/b/ss/或collect),然后提取请求Query String里的事件参数并打印。

代码实现(Python + Selenium 4.x)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

def capture_adobe_analytics_events(event):
    request = event.get('request')
    url = request.get('url')
    
    # 过滤Adobe Analytics请求(可根据实际端点调整规则)
    if '/b/ss/' in url or 'collect?' in url:
        print("\n=== 捕获到Adobe Analytics事件 ===")
        print(f"请求地址: {url}")
        print("关键事件参数:")
        # 提取Query String参数,重点关注事件相关字段
        query_params = request.get('queryString', [])
        target_params = ['events', 'ev', 'pageName', 'linkName', 'prop1', 'eVar1']
        for param in query_params:
            if param['name'] in target_params:
                print(f"  {param['name']}: {param['value']}")
        # 若需要打印所有参数,注释上面的target判断,直接遍历所有param
        # for param in query_params:
        #     print(f"  {param['name']}: {param['value']}")

# 初始化Chrome驱动
chrome_options = webdriver.ChromeOptions()
# 若需无头模式,取消下面注释
# chrome_options.add_argument("--headless=new")

driver = webdriver.Chrome(
    service=Service(ChromeDriverManager().install()),
    options=chrome_options
)

# 启用CDP网络监控
driver.execute_cdp_cmd('Network.enable', {})
# 添加请求监听
driver.add_cdp_listener('Network.requestWillBeSent', capture_adobe_analytics_events)

# 执行你的测试操作
driver.get("https://你的目标页面.com")
# 示例:点击触发事件的元素
# element = driver.find_element(By.ID, "触发事件的元素ID")
# element.click()

# 等待事件发送完成(根据实际场景调整时长)
time.sleep(3)

driver.quit()

关键说明

  1. 过滤规则调整:根据你的Adobe Analytics实际请求URL修改if条件,比如部分站点用/collect?v=2这类端点,就把规则改成'collect?' in url。
  2. 参数自定义:target_params里的字段可以根据你要监控的事件维度调整,比如添加campaign、channel等自定义变量。
  3. Selenium版本要求:需使用Selenium 4.2及以上版本,因为add_cdp_listener是该版本新增的API,旧版本可通过driver.execute_cdp_cmd手动订阅事件,但代码会更繁琐。
  4. 代理兼容:这种方法直接复用Chrome自身的CDP接口,不会和你已有的代理配置冲突,完全规避了额外代理工具的复杂度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:32:52