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

使用Selenium点击按钮后如何抓取触发的Ajax HTTP请求URL

使用Selenium获取点击触发的请求URL

Selenium 4及以上版本原生支持Chrome DevTools Protocol(CDP),可以直接监听浏览器的所有网络请求,不需要依赖第三方工具,实现步骤如下:

  1. 在执行按钮点击操作前,先开启Network域监听,注册请求捕获回调
  2. 执行按钮点击操作,等待所有关联请求发送完成
  3. 按特征过滤捕获到的请求列表,拿到目标URL

Python示例代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
# 启用网络监听
driver.execute_cdp_cmd("Network.enable", {})
captured_urls = []

# 注册回调,捕获所有发送的请求URL
def log_request(params):
    captured_urls.append(params["request"]["url"])

driver.add_cdp_listener("Network.requestWillBeSent", log_request)

# 打开目标页面、点击按钮
driver.get("你的目标页面地址")
download_btn = driver.find_element(By.ID, "替换为你的按钮元素ID")
download_btn.click()

# 等待请求加载完成,可根据实际场景调整等待时间或加条件判断
time.sleep(3)

# 按特征过滤目标请求,比如匹配URL中的固定关键字、请求方法等
target_download_url = [url for url in captured_urls if "download" in url][0]
print("获取到的下载URL:", target_download_url)

driver.quit()

如果是Selenium 3及更低版本,可以搭配BrowserMob Proxy代理工具实现网络请求捕获,不过该工具目前维护更新较少,更推荐升级到Selenium 4使用原生CDP能力。

其他可实现该需求的工具推荐
  • Playwright:微软推出的浏览器自动化工具,原生集成网络请求拦截能力,API设计更简洁,不需要额外配置CDP,适合做自动下载场景的自动化流程。示例代码如下:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    captured_urls = []
    # 监听所有请求
    page.on("request", lambda req: captured_urls.append(req.url))
    
    page.goto("你的目标页面地址")
    page.get_by_role("button", name="下载").click()
    # 等待目标请求加载完成
    page.wait_for_timeout(2000)
    
    target_url = [u for u in captured_urls if "download" in u][0]
    print(target_url)
    browser.close()
  • mitmproxy:开源中间人代理工具,可通过Python脚本自定义请求过滤逻辑,将浏览器流量全部代理到mitmproxy后即可批量捕获符合条件的请求URL,适合脱离浏览器自动化框架的批量处理场景。
注意事项
  • 提前梳理目标请求的特征,比如URL固定包含的关键字、请求方法、响应的Content-Type类型,避免捕获到静态资源、埋点统计等无关请求。
  • 拿到URL后发起下载请求时,需要带上当前浏览器的Cookie、请求头等校验信息,避免因鉴权失败返回403、401错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:30:06