【问题标题】:Java HTML Form ClientJava HTML 表单客户端
【发布时间】:2013-04-29 01:55:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: java html forms


    【解决方案1】:

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

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

    【讨论】:

    • Lobo 似乎旨在呈现页面,我更喜欢 HtmlUnit 方法。无论如何感谢您的贡献。
    【解决方案2】:

    您可能正在寻找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();
        }
    }
    

    【讨论】:

    • 谢谢,我认为这正是我需要的,缺点是它有很多依赖项,但它看起来确实是一个不错的选择。
    • 是的。 Maven 可以帮助您处理它们(依赖项),如果您还没有使用它的话。无论如何,如果您在 HtmlUnit 方面需要更多帮助,请回来,我们很乐意提供帮助。
    猜你喜欢
    • 2014-09-10
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多