目前我正在使用的一些拿网页代码的一些小方法:
Ø 在网页链接后追加参数进行传参,然后直接用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解析出我们需要的数据。