[Java爬蟲] 使用 HtmlUnit + Xpath 模擬點選、動態獲取資訊
阿新 • • 發佈:2019-02-20
一、前言
實現動態操作頁面,首先我們進入360搜尋的頁面(百度頁面、搜狗頁面也行),輸入要查詢的關鍵詞,這時候頁面就會發生變化,我們要獲取新的頁面的資訊。
二、程式碼
package com.cun.test;
import java.util.List;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
/**
* 模擬點選,動態獲取頁面資訊
* @author linhongcun
*
*/
public class JsoupHttpClient {
public static void main(String[] args) throws Exception {
// 建立webclient
WebClient webClient = new WebClient();
// 取消 JS 支援
webClient.getOptions().setJavaScriptEnabled(false );
// 取消 CSS 支援
webClient.getOptions().setCssEnabled(false);
// 獲取指定網頁實體
HtmlPage page = (HtmlPage) webClient.getPage("https://www.so.com/");
// 獲取搜尋輸入框
HtmlInput input = (HtmlInput) page.getHtmlElementById("input");
// 往輸入框 “填值”
input.setValueAttribute("larger5" );
// 獲取搜尋按鈕
HtmlInput btn = (HtmlInput) page.getHtmlElementById("search-button");
// “點選” 搜尋
HtmlPage page2 = btn.click();
// 選擇元素
List<HtmlElement> spanList=page2.getByXPath("//h3[@class='res-title']/a");
for(int i=0;i<spanList.size();i++) {
// 輸出新頁面的文字
System.out.println(i+1+"、"+spanList.get(i).asText());
}
}
}