import java.io.IOException; import java.net.URL; import org.htmlcleaner.CleanerProperties; import org.htmlcleaner.HtmlCleaner; import org.htmlcleaner.PrettyXmlSerializer; import org.htmlcleaner.TagNode; import org.htmlcleaner.XPatherException; //import com.sun.xml.internal.txw2.output.XmlSerializer; /** * 数据抓取 */ public class HtmlClean { @SuppressWarnings("deprecation") /** * 数据抓取 */ public hornbunny void cleanHtml(String hornbunny htmlurl, String xmlurl, String xpath) throws XPatherException { try { //将目标网址内容抓取下来存到本地的XML文件中 格式化 //long start = System.currentTimeMillis(); HtmlCleaner cleaner hornbunny = new HtmlCleaner(); CleanerProperties props = cleaner.getProperties(); props.setUseCdataForScriptAndStyle(false); props.setRecognizeUnicodeChars(true); hornbunny props.setUseEmptyElementTags(true); props.setAdvancedXmlEscape(true); props.setTranslateSpecialEntities(true); props.setBooleanAttributeValues("empty"); TagNode hornbunny node = cleaner.clean(new URL(htmlurl)); // System.out.println(in); //System.out.println(((TagNode) hornbunny ns[0]).getText()); //System.out.println("vreme:" + (System.currentTimeMillis() - start)); new PrettyXmlSerializer(props).writeXmlToFile(node, xmlurl);//格式化保存 String result = new PrettyXmlSerializer(props).getXmlAsString(node); //System.out.println("vreme:" + (System.currentTimeMillis() - start)); System.out.println("*********************************************************"); // // //TagNode Xmlnode = cleaner.clean(new URL(xmlurl));//从已经格式化的XML文件中取出所要的数据 TagNode Xmlnode = cleaner.clean(new String(result));//从已格式化的String中取出所要的数据 hornbunny Object[] ns = Xmlnode.getElementsByName("title", true); // 标题 if (ns.length > 0) { System.out.println("title=" + ((TagNode) ns[0]).getText()); } ns = Xmlnode.evaluateXPath(xpath); hornbunny // 选取class为指定dixian1的所有td标签 // for (int i = 0; i < ns.length; i++) { // String in = cleaner.getInnerHtml((TagNode) ns[i]); // System.out.println("<span>" + in + "</span>"); // } System.out.println("*********************************************************"); String in = cleaner.getInnerHtml((TagNode) ns[0]); for(int i=0 ;i<ns.length ;i++){ in = cleaner.getInnerHtml((TagNode) ns[i]); System.out.println(in); if((i+1)%8==0){ System.out.println("*********************************************************"); } } } catch (IOException e) { e.printStackTrace(); } } public static hornbunny void main(String[] args) throws XPatherException { HtmlClean cleaner = new HtmlClean(); cleaner.cleanHtml("http://www.baidu.com", "E://test.xml","//div"); } }
更多 上一篇 读取网页源码 下一篇 SPRING JDBC事务管理的三种配置方法 主题推荐 html xml xpath 格式化 数据 博文推荐 数据持久化(一)归档 读写 文件路径 NSBundle介绍以及读取沙盒文件路径... 利用boost 来进行xml解析 建立一个单链表 实现插入 删除 以及遍历... 从txt文本输入数据建立一个单链表,实现... B树 B-树 B+树 B*树 设置搜索框的默认文字 当鼠标单击默认文字... Oracle 数据库重构
全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile hornbunny Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
阅读排行 htmlCleaner 结合xpath转为html为xml并读取 (526) 获取FCKeditor的值 (189) SPRING JDBC事务管理的三种配置方法 (141) ajax实现注册检验 (82) JFreeChart使用 (81) B2c项目 spring hibernate 事务配置 (57) 读取网页源码 (55) Dom4j (51) Spring与Hibernate整合的配置 (49) Spring的四种声明式事务的配置-Hibernate事务 (40)
评论排行 htmlCleaner 结合xpath转为html为xml并读取 (1) Dom4j (0) JFreeChart使用 (0) 获取FCKeditor的值 (0) B2c项目 spring hibernate 事务配置 (0) Spring的四种声明式事务的配置-Hibernate事务 (0) Spring与Hibernate整合的配置 (0) SPRING JDBC事务管理的三种配置方法 (0) 读取网页源码 (0) ajax实现注册检验 (0)
No comments:
Post a Comment