HtmlUnit簡介
htmlunit 是一款開源的java 頁面分析工具,讀取頁面後,可以有效的使用htmlunit分析頁面上的内容。項目可以模拟浏覽器運作,被譽為java浏覽器的開源實作。是一個沒有界面的浏覽器,運作速度迅速。是junit的擴充之一
HtmlUnit示例
import java.io.IOException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
public class Ddkjg {
public static void main(String[] args) throws IOException {
// 得到浏覽器對象,直接New一個就能得到,現在就好比說你得到了一個浏覽器了
WebClient webclient = new WebClient();
// 下面這2句可以寫,也可以不寫,設定false就是不加載css和js。通路速度更快
webclient.getOptions().setCssEnabled(false);
webclient.getOptions().setJavaScriptEnabled(false);
// 做的第一件事,去拿到這個網頁,隻需要調用getPage這個方法即可
HtmlPage htmlpage = webclient.getPage("https://baidu.com");
// 根據名字得到一個表單,檢視上面這個網頁的源代碼可以發現表單的名字叫“f”
final HtmlForm form = htmlpage.getFormByName("f");
// 同樣道理,擷取”百度一下“這個按鈕
final HtmlSubmitInput button = form.getInputByValue("百度一下");
// 得到搜尋框
final HtmlTextInput textField = form.getInputByName("wd");
//設定搜尋框的value
textField.setValueAttribute("戰狼2");
// 設定好之後,模拟點選按鈕行為。
final HtmlPage nextPage = button.click();
// 把結果轉成String
String result = nextPage.asXml();
//得到的是點選後的網頁
System.out.println(result);
}
}
注意問題: 1:webclient的包是htmlunit的,不是httpunit的,httpunit的webclient這個類是抽象的,不能直接new的。 2:htmlunit的包要用最新版的2.27版本的jar包。低版本的jar包是沒有getOptions()這個類的。 3:如果出現這個錯誤 UnsupportedClassVersionError。表示版本不一緻,要確定你本地jdk的版本是1.8,eclipse部署的版本也是1.8,怎麼看就不說了。
jar包下載下傳位址:https://jaist.dl.sourceforge.net/project/htmlunit/htmlunit/2.27/htmlunit-2.27-bin.zip