2015-01-13 4 views
1

Я хочу получить отображаемое содержимое html с URL-адреса.Как получить javascript-сгенерированный html на android

Сначала я попробовал приведенный ниже код. Тем не менее, я получаю только html и javascript, чего я не хочу.

Я хочу получить содержимое html после выполнения javascript. Как я могу это сделать на Android?

 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(); 

ответ

0

Наконец, я нашел решение из этого 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"); 
Смежные вопросы