我正在寻找一个纯 Java html 客户端库。我需要检索 html 表单,填写字段并以编程方式提交。
图书馆应该连接到充当浏览器的网站,处理 cookie,解析文档的表单并自行解决表单提交的麻烦。
过去我使用 Apache HttpClient,但它不够简单,因为我负责解析文档和处理 cookie。
您可能正在寻找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();
}
}