HTMLUNIT java javascript ajax

HTMLUNIT java javascript ajax

本文关键字:ajax javascript java HTMLUNIT      更新时间:2023-09-26

我正在尝试解析一个视频资源cinemaonline.kg,以获取视频文件的链接。起初我试着把打开的那一页保存在记事本上。我看了看,发现:

[a id="onlineplayer" onmouseover="jQuery('a#onlineplayer').fancybox({'width' : '8', 'height' : 430, 'autoScale' : true, 'transitionIn' : 'none', 'transitionOut' : 'none', 'type' : 'iframe' , 'closeClick' : 'false' , 'hideOnOverlayClick':false, 'hideOnContentClick':false});" onclick="window.ui.hitMovie(74);window.ui.setFileDownloaded(74);" class="minibutton" href="http://cinemaonline.kg/pl.php?player=ftp&uid=1953&movieid=74&fileid=74&v=6b576ed87c32f85f9252e80591ca1228">[span]Смотреть[/span][/a]

<>-这个字符被这个字符-[]更改了,因为它们没有显示。

所以我试着用jsoup来抢。但它给我返回了nullpointer异常。我看了看返回的页面字符串,没有标签[aid="onlineplayer"…]。我想,也许页面总是由一个脚本生成:

[a id='"onlineplayer'" onmouseover='"jQuery(''a#onlineplayer'').fancybox({''width'' : ''8'', ''height'' : 430, ''autoScale'' : true, ''transitionIn'' : ''none'', ''transitionOut'' : ''none'', ''type'' : ''iframe'' , ''closeClick'' : ''false'' , ''hideOnOverlayClick'':false, ''hideOnContentClick'':false});'" onclick='"window.ui.hitMovie(${movie.movie_id});window.ui.setFileDownloaded(${file.file_id});'" class='"minibutton'"href='"${file.links.license|escape}'"][span]Смотреть[/span][/a]

比我试图用HtmlUnit:解析它

String url = "http://cinemaonline.kg/#/movie/id/74";
WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
HtmlPage page = null;
webClient.setThrowExceptionOnFailingStatusCode(false);
webClient.setThrowExceptionOnScriptError(false);
try {
    page = webClient.getPage(url);
} catch (FailingHttpStatusCodeException e1) {
    e1.printStackTrace();
} catch (MalformedURLException e1) {
    e1.printStackTrace();
} catch (IOException e1) {
    e1.printStackTrace();
}
webClient.waitForBackgroundJavaScript(10000);
webClient.closeAllWindows();
System.out.println(page.asXml());

但它返回给我的文本与jsoup返回的文本相同。我知道这个页面使用javascript和ajax(?),但我真的不知道它是如何工作的。如何返回生成的文本?请帮助

勾选此问题获取图片链接Jsoup:如何获取图片';s的绝对url?

类似地,您可以获取视频元素,并使用其上的yourvideoelement.attr("href")来获取返回的链接