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

如何绕过Flash Player限制,使用Jsoup获取网页视频src?

如何绕过Flash限制获取视频标签的src属性?

问题还原

你在浏览器里能看到正常的video标签:

<video style="width: 854px; height: 480px; left: 0px; top: 0px;" tabindex="-1" class="video-stream html5-main-video" controlslist="nodownload" src="blob:https://www.youtube.com/69bf4dd1-062f-487f-8ca7-6a2493f8dfc8"></video>

但用Jsoup爬取时,得到的却是Flash版本过时的提示:

You are seeing this message either because your Flash Player is outdated or because your browser does not support HTML5 player

你的Jsoup代码如下:

final Document doc = Jsoup.connect(this.url) .validateTLSCertificates(false) .get();

原因分析

这本质上是两个核心问题在作祟:

  1. 请求身份被识别:网站会检测请求的User-Agent头,Jsoup默认的UA是jsoup/版本号,会被判定为非浏览器爬虫,返回降级的Flash提示页面。
  2. 静态爬取的局限:YouTube这类视频网站的video标签是通过JavaScript动态渲染生成的,Jsoup只能解析初始静态HTML,无法执行JS,自然拿不到动态生成的内容。
    另外还要注意:你看到的blob:开头的地址是浏览器本地生成的临时URL,不是真实的远程视频源,即使拿到也无法直接下载或播放。

解决方案

1. 先模拟浏览器User-Agent尝试

第一步先给Jsoup请求添加浏览器的User-Agent头,让网站认为你是正常浏览器访问:

final Document doc = Jsoup.connect(this.url)
    .validateTLSCertificates(false)
    // 这里用Chrome的UA,你可以换成自己当前浏览器的UA
    .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    .get();

不过这一步大概率还是拿不到video标签,因为核心的动态渲染问题没解决。

2. 使用支持JS渲染的工具

要获取JS生成的内容,需要用能模拟浏览器执行JS的工具,比如Selenium或者HtmlUnit。这里以Selenium为例:

// 初始化ChromeDriver(需要提前下载对应版本的ChromeDriver)
WebDriver driver = new ChromeDriver();
driver.get(this.url);
// 等待视频标签加载完成(用显式等待会更可靠,这里用sleep做简化示例)
Thread.sleep(3000);
// 获取目标video元素
WebElement videoElement = driver.findElement(By.cssSelector("video.video-stream.html5-main-video"));
String blobSrc = videoElement.getAttribute("src");
System.out.println(blobSrc);
// 关闭浏览器
driver.quit();

注意:这里拿到的还是blob:地址,要获取真实视频源,还需要进一步操作:

3. 抓取真实的视频流地址

blob:地址是浏览器对视频流的本地封装,真实的视频地址需要从浏览器的网络请求中挖掘:

  • 打开浏览器开发者工具(F12),切换到Network标签
  • 刷新页面,筛选Media类型的请求,找到.m3u8或者.mp4格式的请求地址
  • 这个地址才是真实的视频源,你可以模拟该请求的Headers(比如Referer、Cookie等)去获取视频内容

额外提醒

YouTube有严格的反爬机制,未经授权爬取其视频内容可能违反其服务条款,操作前请确保符合相关规定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:27:22