从网页解析Javascript

时间:2018-01-08 02:14:35

标签: java web-scraping

我是Java新手,但我决定尝试制作一个小项目。我正在尝试从网站上进行一些网络抓取,我的问题是虽然我可以获得源材料,但我无法将“检查元素”材料打印出来。我查看过无数的视频,并在这里搜索,但无论如何,我只能制作一个程序打印出这个网页的源材料。我试图从表中获取信息,以便定价。 网页为“https://www.binance.com/trade.html?symbol=ZEC_BTC”。

我的基本计划是:

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.List;
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class main {
public static void main(String[] args) throws 
FailingHttpStatusCodeException, MalformedURLException, IOException {
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF); /* comment out to turn off annoying htmlunit warnings */

WebClient webClient = new WebClient(BrowserVersion.CHROME);

    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.setJavaScriptTimeout(10000);
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    webClient.getOptions().setTimeout(10000);

    String url = "https://www.binance.com/trade.html?symbol=ZEC_BTC";
    System.out.println("Loading page now: "+url);
    HtmlPage page = webClient.getPage(url);
    webClient.waitForBackgroundJavaScript(30 * 1000); /* will wait JavaScript to execute up to 30s */

    String pageAsXml = page.asXml();
    System.out.println(pageAsXml);

}
}

这里的想法是程序会加载网页,然后在打印之前等待加载javascript。任何帮助都将非常感激。我只需要包含要打印出来的价格的表格的javascript元素。谢谢。

1 个答案:

答案 0 :(得分:0)

  

我只需要包含价格

的表格的javascript元素

您应该做的是使用its API。 (What is API and Why use it?

API以格式化的方式返回您想要的内容(通常是JSON或XML),易于解析和读取。