2011-10-28 57 views
0

我有一個PHP/HTML頁面,我想從提交表單中提取數據。解析HTML(提交表單後)

像:

  1. 打開網站
  2. 輸入此內容
  3. 透過
  4. 解析新的網站內容

什麼是實現這一目標的最快的方法?

我從webview開始 - 太多不需要的東西,所以我改成了org.apache.http,看起來沒問題。

這裏是我的代碼的一部分:

HttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost("WEBSITE NAME"); 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("THE NAME OF THE SEARCH B OX", "WORD I WANT TO BE PUT IN")); 


     httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpClient.execute(httpPost); 

     HttpEntity httpEntity = response.getEntity(); 


     String sourceCode = EntityUtils.toString(httpEntity); 

所以在最後的httpEntity已經拿到了HTML - 然後我卡。有沒有辦法如何將它分開來找到例如 - 找到一個表並獲得第二行的第二個單元格的內容?

+0

我假設該網站以某種方式返回HTML - 在這種情況下我會馬上拿出舊的信賴TagSoup庫(http://ccil.org/~cowan/XML/tagsoup /),這是一個SAXParser實現,它能夠讀取HTML,因爲它遇到了非常糟糕,格式錯誤和破損的問題。注意:您的Android平臺中通常隱藏了一個TagSoup庫,因此您在構建和安裝應用程序時可能會看到一些碰撞警告。 – Jens

回答

1

我推薦的一個小而強大的庫是HtmlCleaner(106 kB,htmlcleaner.sf.net)。它幾乎可以解析任何HTML,不管它多麼醜陋,都可以將它轉換成XML,然後讓你訪問它的某些部分。 他們在他們的頁面上也有很好的例子。

+0

我發現在谷歌,但我在這裏的問題是要麼如何使HTML清潔器來處理我的「響應 - httpResponse」(不知道如何設置它作爲解析源)或如何使用HTML Cleaner undersnand - 但是在開始解析之前填寫並提交表單。 –