Java HTML表单客户端

Java HTML表单客户端,java,html,forms,Java,Html,Forms,我正在寻找一个纯Java html客户端库。我需要检索html表单,填充字段并以编程方式提交它们 图书馆应该连接到一个充当浏览器的网站,处理cookies,解析文档的表单,并自行解决表单提交的麻烦 在过去,我使用Apache HttpClient,但它不够简单,因为我负责解析文档和处理cookies。Try,一个纯Java web浏览器。它必须嵌入到程序中 如果您只想使用HTML(和CSS等)渲染引擎,您可以直接使用。Try,纯Java web浏览器。它必须嵌入到程序中 如果您只需要HTML(和

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

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

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

Try,一个纯Java web浏览器。它必须嵌入到程序中

如果您只想使用HTML(和CSS等)渲染引擎,您可以直接使用。

Try,纯Java web浏览器。它必须嵌入到程序中

如果您只需要HTML(和CSS等)呈现引擎,您可以直接使用。

您可能正在寻找一款“无GUI的Java程序浏览器”

下面是一个示例代码,它打开
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();
    }
}
您可能正在寻找一种“无GUI的Java程序浏览器”

下面是一个示例代码,它打开
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();
    }
}

谢谢,我想这正是我需要的,缺点是它有很多依赖性,但它看起来是一个非常好的选择。是的。如果您还没有使用Maven,Maven可以帮助您处理它们(依赖项)。无论如何,如果你需要更多关于HtmlUnit的帮助,请回来,我们很乐意提供帮助。谢谢,我认为这正是我所需要的,缺点是它有很多依赖性,但它看起来是一个非常好的选择。是的。如果您还没有使用Maven,Maven可以帮助您处理它们(依赖项)。无论如何,如果你需要更多关于HtmlUnit的帮助,请回来,我们很乐意提供帮助。Lobo似乎旨在呈现页面,我更喜欢HtmlUnit方法。无论如何,谢谢你的贡献。Lobo似乎旨在呈现页面,我更喜欢HtmlUnit方法。无论如何,谢谢你的贡献。