2016-09-03 4 views
0

リンクを解析しようとしていますhttp://finance.yahoo.com/quote/VZ/key-statistics?p=VZ以下のコードで、ページが完全に読み込まれません。私はwebClient.waitForBackgroundJavaScript(500000)を使ってみました。 & Thread.sleep(1000);は成功しません。私の目的は評価尺度でテーブルの内容を読むことですが、決して読み込まれません。どんな助けもありがとうございます。JavaのWebページからテーブルを解析するにはどうすればよいですか?

import java.sql.Timestamp; 
import java.util.ArrayList; 
import com.gargoylesoftware.htmlunit.BrowserVersion; 
import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.DomElement; 
import com.gargoylesoftware.htmlunit.html.HtmlAnchor; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 

public class LocalScreenScappingTest { 

public static void main(String[] args) { 

    try { 

     java.util.logging.Logger.getLogger("com.gargoylesoftware") 
       .setLevel(java.util.logging.Level.OFF); 
     WebClient webClient = new WebClient(BrowserVersion.CHROME); 
     webClient.getOptions().setJavaScriptEnabled(true); 
     webClient.getOptions().setCssEnabled(true); 
     webClient.getOptions().setThrowExceptionOnScriptError(false); 
     webClient.getOptions().setPrintContentOnFailingStatusCode(false); 
     // webClient.waitForBackgroundJavaScript(500000); 
     HtmlPage page = webClient 
       .getPage("http://finance.yahoo.com/quote/VZ/key-statistics?p=VZ"); 
     // Thread.sleep(1000); 
     System.out.println(page.asText()); 
     // HtmlTable table = (HtmlTable) 
     // page.getFirstByXPath("//*[@id='main-0-Quote-Proxy']/section/div[2]/section/div/section/div[2]/div[1]/div[1]/div/table"); 

    } catch (Exception ex) { 

     System.out.println((new Timestamp(new java.util.Date().getTime())) 
       + ": " + ex.toString()); 
    } 

} 

} 
+0

Jsoup:https://jsoup.org/のような解析ライブラリを使用するか、Yahoo Finance APIから直接データを取得することを検討してください。http://meumobi.github.io/stocks%20apis/2016/03/ 13/get-realtime-stock quotes-yahoo-finance-api.html – Defozo

+0

私はJsoupを試しました。 Yahoo Finance APIを試してみます。 – Lostsomewhere

+0

logcatログを添付してください。 – Defozo

答えて

0

ブラウザの開発ツールを使用してページを検査すると、 'finance.yahoo.com'ファイルの大部分がJSONタイプであることがわかります。 WebページのHTMLファイルには、必要なテーブルが含まれていません。 Response テーブルを含むファイルを特定し、取得するためにJsonパーサーを使用する必要があります。

関連する問題