htmlunit 提供了丰富的api来获取指定元素 jsoup有的 htmlunit也有;
我们这里举例:
package com.hbk.htmlunit;
import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.DomNodeList;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlListItem;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
/**
*
* @author 黄宝康 获取http://www.3dns.com.cn的源代码
*/
public class HtmlUnitTest {
public static void main(String[] args) {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_45); // 实例化Web客户端
try {
HtmlPage page = webClient.getPage("http://www.3dns.com.cn/");
HtmlDivision div = page.getHtmlElementById("sabv");// 查找指定id的HTML dom 元素
System.out.println(div.asXml());// 获取html
System.out.println("======================");
DomNodeList<DomElement> aList = page.getElementsByTagName("a");// 根据tag名称获取所有的tag
for (int i = 0; i < aList.getLength(); i++) {
DomElement a = aList.get(i);
System.out.println(a.asXml());
}
System.out.println("======================");
HtmlListItem item = (HtmlListItem) page.getByXPath("//div[@id='sabv'][1]/div/ul/li").get(0);// xpath的方式获取
System.out.println(item.asXml());
} catch (FailingHttpStatusCodeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
webClient.close(); // 关闭客户端,释放内存
}
}
}
运行输出
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
警告: Obsolete content type encountered: 'application/x-javascript'.
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
警告: Obsolete content type encountered: 'application/x-javascript'.
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [1:2] Error in style rule. (Invalid token "@charset". Was expecting one of: <S>, <LBRACE>, ".", ":", "[", <COMMA>, <HASH>, <S>.)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
警告: CSS warning: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [1:2] Ignoring the following declarations in this rule.
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [53:52] Error in expression; ':' found after identifier "margin".
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [88:25] Error in expression. (Invalid token ".". Was expecting one of: <S>, <NUMBER>, "inherit", <IDENT>, <STRING>, ")", ":", "-", "=", <PLUS>, <COMMA>, <HASH>, <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <RESOLUTION_DPI>, <RESOLUTION_DPCM>, <PERCENTAGE>, <DIMENSION>, <UNICODE_RANGE>, <URI>, <FUNCTION>, "progid:".)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [92:2] Error in style rule. (Invalid token "html". Was expecting one of: <S>, <LBRACE>, ".", ":", "[", <COMMA>, <HASH>, <S>.)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning
警告: CSS warning: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/reset.css' [92:2] Ignoring the following declarations in this rule.
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/css.css' [42:109] Error in declaration. (Invalid token ";". Was expecting one of: <S>, ":".)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/css.css' [71:74] Error in expression. (Invalid token ";". Was expecting one of: <S>, <NUMBER>, "inherit", <IDENT>, <STRING>, "-", <PLUS>, <HASH>, <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <RESOLUTION_DPI>, <RESOLUTION_DPCM>, <PERCENTAGE>, <DIMENSION>, <UNICODE_RANGE>, <URI>, <FUNCTION>, "progid:".)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/css.css' [71:88] Error in expression. (Invalid token ";". Was expecting one of: <S>, <NUMBER>, "inherit", <IDENT>, <STRING>, "-", <PLUS>, <HASH>, <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <RESOLUTION_DPI>, <RESOLUTION_DPCM>, <PERCENTAGE>, <DIMENSION>, <UNICODE_RANGE>, <URI>, <FUNCTION>, "progid:".)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/css.css' [71:100] Error in expression. (Invalid token ";". Was expecting one of: <S>, <NUMBER>, "inherit", <IDENT>, <STRING>, "-", <PLUS>, <HASH>, <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <RESOLUTION_DPI>, <RESOLUTION_DPCM>, <PERCENTAGE>, <DIMENSION>, <UNICODE_RANGE>, <URI>, <FUNCTION>, "progid:".)
二月 23, 2018 10:27:41 上午 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
警告: CSS error: 'http://www.3dns.com.cn/skin/3dns2017/cmsimages/css.css' [71:114] Error in expression. (Invalid token ";". Was expecting one of: <S>, <NUMBER>, "inherit", <IDENT>, <STRING>, "-", <PLUS>, <HASH>, <EMS>, <EXS>, <LENGTH_PX>, <LENGTH_CM>, <LENGTH_MM>, <LENGTH_IN>, <LENGTH_PT>, <LENGTH_PC>, <ANGLE_DEG>, <ANGLE_RAD>, <ANGLE_GRAD>, <TIME_MS>, <TIME_S>, <FREQ_HZ>, <FREQ_KHZ>, <RESOLUTION_DPI>, <RESOLUTION_DPCM>, <PERCENTAGE>, <DIMENSION>, <UNICODE_RANGE>, <URI>, <FUNCTION>, "progid:".)
<div class="customer-cont warp" id="sabv">
<div class="wtfaa">
<ul>
<li>
<a href="http://www.gzdw.gov.cn/" target="_blank">
中共赣州市委
</a>
</li>
<li>
<a href="http://www.ganzhou.gov.cn/" target="_blank">
赣州市政府
</a>
</li>
<li>
<a href="http://www.gzsrd.gov.cn/" target="_blank">
赣州市人大
</a>
</li>
<li>
<a href="http://www.jxgzzx.gov.cn/" target="_blank">
赣州市政协
</a>
</li>
<li>
<a href="http://www.gzswb.gov.cn/" target="_blank">
中共赣州市委办公厅
</a>
</li>
<li>
<a href="http://swxcb.rjdw.gov.cn/" target="_blank">
中共瑞金市委宣传部
</a>
</li>
<li>
<a href="http://www.chinarjw.com/" target="_blank">
中国瑞金网
</a>
</li>
<li>
<a href="http://www.shxga.gov.cn/" target="_blank">
陕西省公安厅
</a>
</li>
<li>
<a href="http://www.zgq.gov.cn/" target="_blank">
章贡区人民政府
</a>
</li>
<li>
<a href="http://www.gzkfq.gov.cn/" target="_blank">
赣州经开区政府
</a>
</li>
<li>
<a href="http://www.ningdu.gov.cn/" target="_blank">
宁都县人民政府
</a>
</li>
<li>
<a href="http://www.shicheng.gov.cn/" target="_blank">
石城县人民政府
</a>
</li>
<li>
<a href="http://www.jxdy.gov.cn/" target="_blank">
大余县人民政府
</a>
</li>
<li>
<a href="http://www.ruijin.gov.cn/" target="_blank">
瑞金市人民政府
</a>
</li>
<li>
<a href="http://www.jxfc.gov.cn/" target="_blank">
丰城市人民政府
</a>
</li>
<li>
<a href="http://www.gzdz.gov.cn/" target="_blank">
赣州防震减灾网
</a>
</li>
<li>
<a href="http://www.gzsl.gov.cn/" target="_blank">
赣州市水利局
</a>
</li>
<li>
<a href="http://www.gnly.gov.cn/" target="_blank">
赣州市林业局
</a>
</li>
<li>
<a href="http://www.gzdofcom.gov.cn/" target="_blank">
赣州市商务局
</a>
</li>
<li>
<a href="http://www.gzsmzj.gov.cn/" target="_blank">
赣州市民宗局
</a>
</li>
<li>
<a href="http://www.gzhrss.gov.cn/" target="_blank">
赣州市人社局
</a>
</li>
<li>
<a href="http://www.gzshbx.gov.cn/" target="_blank">
赣州市社保局
</a>
</li>
<li>
<a href="http://www.gzyb.com.cn/" target="_blank">
赣州市医保局
</a>
</li>
<li>
<a href="http://www.gzmzw.gov.cn/" target="_blank">
赣州市民政局
</a>
</li>
</ul>
<ul style="display: none;">
<li>
<a href="http://www.gzssfj.gov.cn/" target="_blank">
赣州市司法局
</a>
</li>
<li>
<a href="http://www.gzsport.gov.cn/" target="_blank">
赣州市体育局
</a>
</li>
<li>
<a href="https://www.gzciit.gov.cn/" target="_blank">
赣州市工信委
</a>
</li>
</ul>
</div>
</div>
======================
<a href="/" class="logo">
</a>
<a href="/">
首页
</a>
<a href="http://www.3dns.com.cn/html7/gywl/index.html">
关于网联
</a>
<a href="http://www.3dns.com.cn/html/jsfw/index.html">
技术服务
</a>
<a href="http://www.3dns.com.cn/html/cpzx/index.html">
产品中心
</a>
<a href="http://www.3dns.com.cn/html/khal/index.html">
客户案例
</a>
<a href="http://www.3dns.com.cn/html/rczp/index.html">
人才招聘
</a>
<a href="http://www.3dns.com.cn/html/lxwm/index.html">
联系我们
</a>
<a class="prev" href="javascript:void(0)">
</a>
<a class="next" href="javascript:void(0)">
</a>
<a href="#">
电子政务
</a>
<a href="#">
网联科技提供集门户网站、应用系统、平台管理 于一体的信息化管理解决方案
</a>
<a href="#">
系统集成
</a>
<a href="#">
网联科技系统集成服务以用户的应用需求和实际条件为出发点,在合理规划的基础...
</a>
<a href="#">
软件开发
</a>
<a href="#">
网联科技提供信息化建设与软件定制开发能依据客户的实际业务特点大大提高整体...
</a>
<a href="#">
IT运维服务
</a>
<a href="#">
基于服务级别协议(SLA)向IT运维服务的使用者提供IT日常运维服务...
</a>
<a href="http://www.gzdw.gov.cn/" target="_blank">
中共赣州市委
</a>
<a href="http://www.ganzhou.gov.cn/" target="_blank">
赣州市政府
</a>
<a href="http://www.gzsrd.gov.cn/" target="_blank">
赣州市人大
</a>
<a href="http://www.jxgzzx.gov.cn/" target="_blank">
赣州市政协
</a>
<a href="http://www.gzswb.gov.cn/" target="_blank">
中共赣州市委办公厅
</a>
<a href="http://swxcb.rjdw.gov.cn/" target="_blank">
中共瑞金市委宣传部
</a>
<a href="http://www.chinarjw.com/" target="_blank">
中国瑞金网
</a>
<a href="http://www.shxga.gov.cn/" target="_blank">
陕西省公安厅
</a>
<a href="http://www.zgq.gov.cn/" target="_blank">
章贡区人民政府
</a>
<a href="http://www.gzkfq.gov.cn/" target="_blank">
赣州经开区政府
</a>
<a href="http://www.ningdu.gov.cn/" target="_blank">
宁都县人民政府
</a>
<a href="http://www.shicheng.gov.cn/" target="_blank">
石城县人民政府
</a>
<a href="http://www.jxdy.gov.cn/" target="_blank">
大余县人民政府
</a>
<a href="http://www.ruijin.gov.cn/" target="_blank">
瑞金市人民政府
</a>
<a href="http://www.jxfc.gov.cn/" target="_blank">
丰城市人民政府
</a>
<a href="http://www.gzdz.gov.cn/" target="_blank">
赣州防震减灾网
</a>
<a href="http://www.gzsl.gov.cn/" target="_blank">
赣州市水利局
</a>
<a href="http://www.gnly.gov.cn/" target="_blank">
赣州市林业局
</a>
<a href="http://www.gzdofcom.gov.cn/" target="_blank">
赣州市商务局
</a>
<a href="http://www.gzsmzj.gov.cn/" target="_blank">
赣州市民宗局
</a>
<a href="http://www.gzhrss.gov.cn/" target="_blank">
赣州市人社局
</a>
<a href="http://www.gzshbx.gov.cn/" target="_blank">
赣州市社保局
</a>
<a href="http://www.gzyb.com.cn/" target="_blank">
赣州市医保局
</a>
<a href="http://www.gzmzw.gov.cn/" target="_blank">
赣州市民政局
</a>
<a href="http://www.gzssfj.gov.cn/" target="_blank">
赣州市司法局
</a>
<a href="http://www.gzsport.gov.cn/" target="_blank">
赣州市体育局
</a>
<a href="https://www.gzciit.gov.cn/" target="_blank">
赣州市工信委
</a>
<a href="http://www.miitbeian.gov.cn/" target="_blank">
赣ICP备10200822号
</a>
======================
<li>
<a href="http://www.gzdw.gov.cn/" target="_blank">
中共赣州市委
</a>
</li>