1つのビデオリソースcinemanonline.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例外が返されました。ページの返された文字列を確認しましたが、タグはありませんでした[a id ="onlineplayer"...]。たぶん、ページは常に1つのスクリプトによって生成されているのではないかと思いました。
[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(?)が使用されていることは知っていますが、どのように機能するのかはよくわかりません。生成されたテキストを返すにはどうすればよいですか?助けてください