如何在Android上获取javascript生成的html

How to get javascript-generated html on android

本文关键字:html javascript 获取 Android      更新时间:2023-09-26

我想从网址中获取呈现的html内容。

起初,我尝试了以下代码。但是,我只得到一些html和javascript,这不是我想要的。

我想在执行javascript后获取html内容。 我如何在安卓上做到这一点?

        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(url);
        HttpResponse response = client.execute(request);
        String html = "";
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while((line = reader.readLine()) != null)
        {
            str.append(line);
        }
        in.close();
        html = str.toString();

最后,我从这个 https://stackoverflow.com/a/8623129/2243078 中找到了解决方案

// intercept calls to console.log
web.setWebChromeClient(new WebChromeClient() {
    public boolean onConsoleMessage(ConsoleMessage cmsg)
    {
        // check secret prefix
        if (cmsg.message().startsWith("MAGIC"))
        {
            String msg = cmsg.message().substring(5); // strip off prefix
            /* process HTML */
            return true;
        }
        return false;
    }
});
// inject the JavaScript on page load
web.setWebViewClient(new WebViewClient() {
    public void onPageFinished(WebView view, String address)
    {
        // have the page spill its guts, with a secret prefix
        view.loadUrl("javascript:console.log('MAGIC'+document.getElementsByTagName('html')[0].innerHTML);");
    }
});
web.loadUrl("http://www.google.com");