2015-04-15 2 views
1

Я озадачен этим вопросом.Как я могу полностью разобрать HTML без сторонней библиотеки?

Я могу разобрать HTML, как показано ниже.

package org.owls.parser.html; 

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class HTMLParser { 
    public static String getHTTPStringsFromWeb(String urlStr) throws Exception { 
     StringBuffer sb = new StringBuffer(); 
     URL url = new URL(urlStr); 
     HttpURLConnection con = (HttpURLConnection) url.openConnection(); 

     BufferedReader br = null; 
     if(con.getResponseCode() == HttpURLConnection.HTTP_OK) 
     { 
      br = new BufferedReader(new InputStreamReader(con.getInputStream())); 
      String line = ""; 
      while((line = br.readLine()) != null){ 
       sb.append(line); 
      } 
      br.close(); 
     } 
     return sb.toString(); 
    } 
} 

Этот код работает хорошо, но есть проблемы. Этот код не может получить динамические данные, сделанные из результата ajax.

Так что я хочу получить полную страницу. Является ли это возможным?

Люди говорят о jsoup, но я хочу знать, есть ли все равно, чтобы получить это с помощью native.

спасибо: D

ответ

0

Существует врожденная проблема в том, что вы пытаетесь сделать, вам нужно веб-браузер/среда для выполнения AJAX-запросов. чтение их в строку и поиск url ​​недостаточно, функции могут делать что-то особенное с данными, которые вы не сможете поддерживать.

Вам нужно будет использовать что-то вроде phantomjs, которое может загружать и анализировать страницы в безголовой среде.

Смежные вопросы