【发布时间】:2013-04-29 01:55:21
【问题描述】:
我正在寻找一个纯 Java html 客户端库。我需要检索 html 表单,填写字段并以编程方式提交。
图书馆应连接到充当浏览器的网站,处理 cookie,解析文档的表单并自行解决表单提交的麻烦。
过去我使用 Apache HttpClient,但它不够简单,因为我负责解析文档和处理 cookie。
【问题讨论】:
我正在寻找一个纯 Java html 客户端库。我需要检索 html 表单,填写字段并以编程方式提交。
图书馆应连接到充当浏览器的网站,处理 cookie,解析文档的表单并自行解决表单提交的麻烦。
过去我使用 Apache HttpClient,但它不够简单,因为我负责解析文档和处理 cookie。
【问题讨论】:
试试 Lobo,一个纯 Java 网络浏览器。它有an API 将其嵌入到程序中。
如果你只想要 HTML(和 CSS 等)渲染引擎,你可以直接使用its engine。
【讨论】:
您可能正在寻找HtmlUnit -- “Java 程序的无 GUI 浏览器”。
这是一个示例代码,它打开 google.com,使用表单搜索 "htmlunit" 并打印结果数。
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
public class HtmlUnitFormExample {
public static void main(String[] args) throws Exception {
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.google.com");
HtmlInput searchBox = page.getElementByName("q");
searchBox.setValueAttribute("htmlunit");
HtmlSubmitInput googleSearchSubmitButton =
page.getElementByName("btnG"); // sometimes it's "btnK"
page=googleSearchSubmitButton.click();
HtmlDivision resultStatsDiv =
page.getFirstByXPath("//div[@id='resultStats']");
System.out.println(resultStatsDiv.asText()); // About 301,000 results
webClient.closeAllWindows();
}
}
【讨论】: