2010-01-11 57 views
6

我很喜歡用java編程語言,我喜歡從網站中提取數據並將其存儲到我的機器上運行的數據庫中。在java.If中可能會出現這種情況,因此我應該使用哪個API。例如,網站上列出的學校數量如何提取數據並使用java將其存儲到我的數據庫。如何從使用java的網站提取數據?

+0

Dupes:http://stackoverflow.com/questions/tagged/screen-scraping+java – Jherico 2010-01-11 19:43:05

+0

數百萬的愚蠢! http://stackoverflow.com/questions/26638/what-html-parsing-libraries-do-you-recommend-in-java,http://stackoverflow.com/questions/238036/java-html-parsing等,等 – 2010-01-11 21:34:26

回答

7

你所指的通常稱爲'屏幕抓取'。在Java中有很多種方法可以做到這一點,但我更喜歡HtmlUnit。雖然它被設計爲測試網頁功能的一種方式,但您可以使用它來打開遠程網頁並將其解析出來。

我會推薦使用一個很好的錯誤處理HTML解析器,如Tagsoup從HTML中提取出您正在尋找的內容。

+0

我可以第二推薦Tagsoup。我現在用一段時間來提取「真實世界網頁」的數據(意思是無效的html),它效果很好 – bert 2010-01-21 10:28:51

0

根據您真正想要做的事情,您可以使用許多不同的解決方案。

如果您想要獲取網頁的HTML代碼,那麼URL.getContent()可能是您的解決方案。這裏是一個小教程:

http://www.javacoffeebreak.com/books/extracts/javanotesv3/c10/s4.html

編輯:聽不懂他在尋找一種方式來解析HTML代碼。上面提出了一些工具。對不起。

1

您可以使用VietSpider XML從

http://sourceforge.net/projects/binhgiang/files/

下載VietSpider3_16_XML_Windows.zip或VietSpider3_16_XML_Linux.zip

VietSpider Web數據提取器:軟件從網站((Data Scraper))抓取數據,格式爲XML標準(Text,CDATA),然後存儲在關係數據庫中。產品支持各種RDBM,如Oracle,MySQL,SQL Server,H2,HSQL,Apache Derby,Postgres ... VietSpider Crawler支持會話(登錄,通過表單查詢),多重下載,JavaScript處理,代理(和多代理通過自動掃描代理網站)...