HTML 不包含'src'标记的页面



我正在尝试链接到本页https://www.clippituser.tv/c/xqbnrq.mp4

在Chrome devtools我可以看到它很好:

<video playsinline="playsinline" webkit-playsinline="" class="vjs-tech" id="vjs_video_3_html5_api" tabindex="-1" preload="auto" autoplay="" src="https://clips.clippit.tv/xqbnrq/360.mp4"></video>
我的代码是:
Page page = null;
try {
webClient.waitForBackgroundJavaScript(5000);
page = webClient.getPage(url);
} catch (IOException e) {
e.printStackTrace();
}
DomNodeList<DomElement> source = ((HtmlPage) page).getElementsByTagName("video");
String videoUrl = source.get(0).getAttribute("src");

source.get(0).asXml()是相同的,除了缺少src,.mp4是:

<video playsinline="playsinline" webkit-playsinline="" class="vjs-tech" id="vjs_video_3_html5_api" tabindex="-1" preload="auto" autoplay="autoplay"/>

这段代码可以很好地从其他网站获取视频,所以不确定我做错了什么。

At first - webClient.waitForBackgroundJavaScript(5000);不是一个选择。您必须在检索页面后调用此函数。

作为HtmlUnit 2.61.0有一个错误在XMLHttpRequest处理,导致ArrayIndexOutOfBounds异常。这个问题现在已经修复,新的快照版本将很快发布。

但是修复后页面仍然报告

VIDEOJS: "ERROR:" "(CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)"
No compatible source was found for this media.
{"code":4,"message":"No compatible source was found for this media."

看起来有一些js代码,检查"浏览器",找出如果视频是添加源之前可播放。但是这个页面的js代码是复杂的,要找出哪个检查失败不是那么容易的。

如果你想得到这个也固定,请打开一个问题HtmlUnit在github,并尝试隔离问题(https://htmlunit.sourceforge.io/submittingJSBugs.html)。

最新更新