如何只获取HTML页面的一部分?

时间:2011-05-17 18:02:33

标签: java html web-scraping html-table apache-httpclient-4.x

从HttpClient4的Apache和Java请求中获取Html页面的一部分的最佳方法是什么?具体来说,我需要一张表(它的内容) 解释,示例或链接会很棒。

2 个答案:

答案 0 :(得分:2)

您可以做的是从响应中创建一个DOM对象,因为它应该是一个有效的文档。

执行类似

的操作
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(/* your input stream from response */);
Element tableElement = document.getElementById("the-table-id");

答案 1 :(得分:1)

Adrian Rodriguez的方式并不错,但不幸的是,只有当HTML是XHTML(即有效格式化的XML)时它才会起作用。您可以使用名为Web Harvest的库(在sourceforge.net上可用)来刮取页面并以声明方式提取表,而不是编写代码来执行此操作。它还包括构建脚本中的阶段,用于根据需要清理页面。我强烈建议使用它,因为它是一个更强大的解决方案,你想要的,特别是如果你将来需要刮掉其他页面。