天天看點

HtmlUnit實作模拟浏覽器點選按鈕的效果

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