2010-07-30 2 views
0

Я делаю приложение на Android.Извлечь часть веб-страницы

У меня есть содержимое веб-страницы (всего HTML) в String, и мне нужно извлечь весь текст внутри абзацев (p элементов) с помощью класса = "content".

Пример:

<p class="content">La la la</p> 
<p class="another">Le le le</p> 
<p class="content">Li li li</p> 

Результат:

La la la 
Li li li 

Каков наилучший подход, чтобы сделать это?

ответ

1
import java.io.DataInputStream; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 


public class Test { 
    void readScreen() //reads from server 
     { 
     try 
     { 
      URL    url; 
      URLConnection  urlConn; 
      DataInputStream dis; 

      //Open url 
      url = new URL("http://somewebsite.com"); 

      // Note: a more portable URL: 
      //url = new URL(getCodeBase().toString() + "/ToDoList/ToDoList.txt"); 

      urlConn = url.openConnection(); 
      urlConn.setDoInput(true); 
      urlConn.setUseCaches(false); 

      dis = new DataInputStream(urlConn.getInputStream()); 
      String s; 

      while ((s = dis.readLine()) != null) 
      { 
      System.out.println(s); //this is where it reads from the screen 
      } 
      dis.close(); 
      } 

      catch (MalformedURLException mue) {} 
      catch (IOException ioe) {} 
     } 

    public static void main(String[] args){ 

     Test thisTest = new Test(); 
     thisTest.readScreen(); 

    } 
} 
+0

Прежде всего, спасибо за вашу помощь :) Я сделал это, моя проблема заключается в том, что я не знаю, как извлечь только некоторые части сети (в моем случае, все абзацы с классом = "content"). Я знаю, что могу выполнять ручной поиск во всех строках, но должен быть лучший способ сделать это. – pacopepe222

+0

Возможно, вам будет лучше скачать файл html, а затем проанализировать текст там. Вы можете использовать некоторые утилиты xml, чтобы найти нужные теги. Это примерно столько же, сколько я сделал с сетью и Java, извините, я не могу больше помочь. – Mike

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