2017-08-28 96 views
0

我有表分析,其装有AJAX一个问题:Jsoup,解析HTML载入AJAX表

Document doc = Jsoup.connect("http://lfl.ru/club553").get(); 

这就是我得到:

<div class="tournament_stats_table_tournament_3442 tournament-stats-table" style="display: block;" url="/?ajax=1&amp;method=tournament_stats_table&amp;tournament_id=3442&amp;club_id=553"> 
         подождите...     </div> 

请告诉我什么都可以在这种情况下完成。 Thx。

+1

的可能的复制[页内容加载javascript和Jsoup没有看到它(https://stackoverflow.com/questions/7488872/page-content-is-loaded-with-javascript-and -jsoup-doesnt-see-it) – luksch

回答

0

您将无法使用服务器 - >服务器请求获取数据。当你在服务器上做你的请求时,JS将不会被执行,因此表格根本不可用。

作为替代想想这些:

  1. 如果你的网站的,你解析所有者 - 尝试尽可能地避免AJAX;
  2. 检查ajax请求的端点是什么,并简单地解析它而不是网页;
+0

感谢您的回答。 我不是网站所有者,我需要在我的网站上自动更新此表的过程。 –

+1

@ivanVishnyak检查ajax请求并解析它的结果。 –

0

首先:你需要得到饼干,只是用

Connection.Response = Jsoup.connect.method(get).excute 

然后:做与cookie和头

document=Jsoup.connect.header.data.post 

例如要求

Connection.Response loginForm=Jsoup.connect("http://www.a5.cn"). 
     method(Connection.Method.GET).execute(); 

Document document=Jsoup.connect("http://www.a5.cn/login.html"). 
     data("formhash","97bfbf").data("hdn_refer","http://www.a5.cn/") 
     data("account","userID").data("autoLogin","1").data("password","your password"). 
     cookies(loginForm.cookies()).header("Accept","application/json, text/javascript, */*; q=0.01").header("X-Requested-With","XMLHttpRequest").post(); 

System.out.println(document.body().text());