2010-01-11 48 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处理,代理(和多代理通过自动扫描代理网站)...