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

使用Python Selenium无法获取Twitter帖子中的视频URL 求助

Twitter视频源URL获取说明

Twitter(现X)的网页端不会直接在页面DOM中暴露可直接下载的视频源URL。

原因说明

页面中的视频是通过动态渲染加载的,实际的媒体流URL被封装在内部API的响应中,而非直接嵌入HTML元素内。这些URL通常带有临时签名,会在短时间内过期,无法直接从页面源码中提取。

用Selenium获取的方法

可以通过Selenium结合Chrome DevTools协议(CDP)监听网络请求,捕获Twitter媒体API返回的响应,从中提取视频流地址:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

def extract_twitter_video_urls(tweet_url):
    chrome_options = Options()
    # 可选:启用无头模式
    # chrome_options.add_argument("--headless=new")
    
    driver = webdriver.Chrome(service=Service(), options=chrome_options)
    driver.get(tweet_url)
    
    # 启用网络监听
    driver.execute_cdp_cmd("Network.enable", {})
    
    video_urls = []
    
    def capture_response(response):
        response_details = response.get("response", {})
        # 筛选视频类型的响应
        if "video" in response_details.get("mimeType", ""):
            media_url = response_details.get("url")
            if media_url and media_url not in video_urls:
                video_urls.append(media_url)
    
    # 注册响应监听事件
    driver.execute_cdp_cmd("Network.responseReceived", {}, capture_response)
    
    # 等待页面加载完成,确保捕获到视频请求
    driver.implicitly_wait(12)
    
    driver.quit()
    return video_urls

# 调用示例
target_tweet = "https://twitter.com/Tesla/status/1711184330792579093"
result_urls = extract_twitter_video_urls(target_tweet)
for i, url in enumerate(result_urls, 1):
    print(f"分辨率视频URL {i}: {url}")

注意事项

  • 提取到的视频URL是临时有效,过期后无法访问;
  • Twitter有反爬机制,频繁抓取可能会触发账号限制,建议控制请求频率,避免被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:00:08