//nekohtml结合xpath用法
DOMParser parser = new DOMParser();
try {
//设置网页的默认编码
parser.setProperty("http://cyberneko.org/html/properties/default-encoding","gb2312");
/*The Xerces HTML DOM implementation does not support namespaces
and cannot represent XHTML documents with namespace information.
Therefore, in order to use the default HTML DOM implementation with NekoHTML's
DOMParser to parse XHTML documents, you must turn off namespace processing.*/
parser.setFeature("http://xml.org/sax/features/namespaces", false);
String strURL = "http://product.dangdang.com/product.aspx?product_id=9317290";
BufferedReader in = new BufferedReader(
new InputStreamReader(
new URL(strURL).openStream()));
parser.parse(new InputSource(in));
in.close();
} catch (Exception e) {
e.printStackTrace();
}
Document doc = parser.getDocument();
// tags should be in upper case
String productsXpath = "/HTML/BODY/DIV[2]/DIV[4]/DIV[2]/DIV/DIV[3]/UL[@class]/LI[9]";
NodeList products;
try {
products = XPathAPI.selectNodeList(doc, productsXpath);
System.out.println("found: " + products.getLength());
Node node = null;
for(int i=0; i< products.getLength();i++)
{
node = products.item(i);
System.out.println( i + ":\n" + node.getTextContent());
}
}catch (TransformerException e) {
e.printStackTrace();
}
nekohtml 用法
最新推荐文章于 2017-08-23 16:34:20 发布
本文介绍使用NekoHTML结合XPath解析网页的具体方法。通过实例演示如何设置网页编码、关闭命名空间处理,并利用XPath选择器定位页面元素。
215

被折叠的 条评论
为什么被折叠?



