2

我正在寻找一个纯 Java html 客户端库。我需要检索 html 表单,填写字段并以编程方式提交。

图书馆应该连接到充当浏览器的网站,处理 cookie,解析文档的表单并自行解决表单提交的麻烦。

过去我使用 Apache HttpClient,但它不够简单,因为我负责解析文档和处理 cookie。

4

2 回答 2

3

您可能正在寻找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();
    }
}
于 2013-05-04T23:33:03.937 回答
1

试试Lobo,一个纯 Java 网络浏览器。它有一个 API可以将其嵌入到程序中。

如果你只想要 HTML(和 CSS 等)渲染引擎,你可以直接使用它的引擎

于 2013-05-04T23:13:43.093 回答