2012-04-04 42 views
0

因此,我在使用Android Java中的HTTP Post Requests登錄到一個網站,然後提取整個HTML代碼。之後,我使用Pattern/Matcher(正則表達式)在從HTML數據中提取它們之前查找所需的所有元素,並刪除不必要的所有內容。例如,當我提取此:HTML解析(在Java/Android中)然後從中提取數據,這是獲取網頁內容的有效方式?

String extractions = <td>Good day sir</td> 

然後我用:

extractions.replaceAll("<td>", "").replaceAll("</td>", ""); 

我這樣做多次,直到我從該網站所需的所有數據,之前我在某種列表顯示出來。

我並沒有特別留在任何東西上,但是請你告訴我,這是一種從頁面獲取數據並處理它的有效/高效/快速的方式,還是有辦法更快地完成此操作?因爲有時候就像我的程序需要很長時間才能獲得某些數據(儘管大多數情況是我在手機上使用3G時)。

+1

使用jsoup解析HTML ...和有關數據...如果它是你的網站,建立一些Web服務獲取數據...如果沒有,也許這個網站有API(如Facebook,微博等),如果沒有,你也可以建立你的API的網站,通過建立web服務將是proccess這個網站的內容,你將只訪問從android處理的數據... – Selvin 2012-04-04 08:57:17

回答

0

像其他人說,正則表達式是不是這個職位的最佳工具。但在這種情況下,使用正則表達式的特定方式比通常效率更低。

在任何情況下,讓我提供一個更可能的解決方案(取決於您的使用情況)。

它被稱爲YQL(雅虎查詢語言)。 http://developer.yahoo.com/yql/

這是一個控制檯,所以你可以玩它。 http://developer.yahoo.com/yql/console/

YQL是懶惰的開發者的方式來建立你自己的動態API。主要的不便之處是你必須使用雅虎作爲中間人,但如果你確定,那麼我建議你走這條路。使用YQL可能是完成這種工作的最快捷方式(尤其是如果您定位的html不斷變化,並且它的html標籤不總是有效的話)。

0

看一看在Apache提卡庫從HTML中提取文本 - 還有許多其他的解析器也可用,如PDF等:http://tika.apache.org/