目前我正在使用的一些拿網頁代碼的一些小方法:
Ø 在網頁鏈接後追加參數進行傳參,然後直接用Jsoup post或者get網頁代碼,這個是最簡單的,如果可用使用,一般優先使用,特別是選擇時間範圍的網站,如http://www.nbct.com.cn:7001/nbct/qryChuanBoYuGao.jsp?date1=#{BeginTime}&date2=#{EndTime}&submit=%B2%E9+%D1%AF
一般性追加寫法:(假如鏈接是.jsp結束的)"?username=#{username}&pwd=#{pwd}&submit=submit",注意,當要追加的內容含有特殊字符,如空格等,要轉換爲html格式,如使用super.getHTMLEnCode(datelastString);轉化
Ø 直接用Jsoup傳參,設置需要傳遞的參數,直接post網頁代碼,這時候注意type=hide的input標籤。如
Document doc = Jsoup.connect(websiteURL.getWebURLOne())
.data("query", "Java")
.data("ename", vesselname)
.timeout(60000).post();
Ø 使用網頁模擬點擊獲得網頁代碼,如:
webClient = new WebClient();
webClient.getOptions().setTimeout(30000);
page = webClient.getPage(websiteURL.getWebURLOne());
vessel = page.getElementByName("txtShipname");
voyagein = page.getElementByName(voyageiInOrOut);
search = (HtmlElement) page.getElementById("btnSearch");
vessel.focus();
vessel.type(vesselname);
voyagein.focus();
voyagein.type(voyage);
page = search.click();
doc = Jsoup.parse(page.asXml());
最後,將捕獲到的網頁代碼進行Jsoup解析出我們需要的數據。