Java下使用xpath解析html文件

这段时间一直在网络上扒取数据,为了方便就用到了xpath,一开始使用真的是挺难的,不过用用就好了,但是网上的资源少之又少,所以自己就写个博客把~~~

首先需要下载三个jar包 nekohtml.jar xalan.jar xerceslmpl.jar

在下面的这个文章中可以找自己想要的语法结构

http://blog.csdn.net/dyoldfish/article/details/1774539

直接上代码

不好意思,这个文本编辑器实在是不好用,凑合着看~~

import org.apache.xpath.XPathAPI;import org.cyberneko.html.parsers.DOMParser;import org.w3c.dom.DOMException;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.InputSource;public class Hxpath {DOMParser parser = new DOMParser();             try {                    //设置网页的默认编码                    parser.setProperty("http://cyberneko.org/html/properties/default-encoding","gb2312");                    parser.setFeature("http://xml.org/sax/features/namespaces", false);//可以修改获取页面的编码方式,在最后的那个参数                    BufferedReader in = new BufferedReader(new InputStreamReader(new URL("www.baidu.com").openStream(),"gb2312"));                    parser.parse(new InputSource(in)); in.close();                     } catch (Exception e) {                        e.printStackTrace();                      }                         Document doc = parser.getDocument();                         String productsXpath = "//UL/LI/A[@class='orange"; //xpath语句                          NodeList products; products = XPathAPI.selectNodeList(doc, productsXpath);                String temp="";Node node = null;String p = "";                for (int i = 0; i < products.getLength(); i++) {                    node = products.item(i);temp=node.getTextContent().trim();                    System.out.println("i="+i+" "+temp);                }}

整个程序基本是这样的,在其中修改url值和xpath语法就可以分析html页面,如果是本地的html文件,没有试过,这个是直接从网络获取两个语句之间使用 | 可以匹配多个如果还有其他问题就留言~~~感觉这个东西还算是很好用的~~~




当你能爱的时候就不要放弃爱

Java下使用xpath解析html文件

相关文章:

你感兴趣的文章:

标签云: