我正在寻找一个纯Java html客户端库。我需要检索html表单,填写字段并以编程方式提交它们。
库应该连接到一个网站作为浏览器,处理cookie,解析文档的表单和解决表单提交的麻烦自己。
在过去,我使用Apache HttpClient,但它不够简单,因为我要负责解析文档和处理cookie。
您可能正在寻找HtmlUnit——一个" Java程序的GUI-Less浏览器"。
下面是一个示例代码,它打开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();
}
}
试试Lobo,一个纯Java web浏览器。它有一个API将其嵌入到程序中。
如果你只想要HTML(和CSS等)渲染引擎,你可以直接使用它的引擎