2016-09-03 5 views
0

Я пытаюсь разобрать ссылку http://finance.yahoo.com/quote/VZ/key-statistics?p=VZ с кодом ниже и страница полностью не загружается. Я попытался использовать webClient.waitForBackgroundJavaScript (500000); & Thread.sleep (1000); без каких-либо успехов. Моя цель - прочитать содержимое таблицы под Оценочные меры, но это никогда не загружается. Любая помощь приветствуется.Как я могу разобрать таблицу с веб-страницы в Java?

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

Подключить журналы регистрации. – Defozo

ответ

0

Если вы проверяете страницу с помощью инструментов разработчика браузера, вы увидите, что «finance.yahoo.com» файлы в основном типа JSON. HTML-файл веб-страницы не содержит требуемую таблицу. Response Вам нужно будет определить, какой файл содержит таблицу, и использовать некоторый парсер Json для его получения.