HtmlParserGetPageUrls.java
上传用户:cctqzzy
上传日期:2022-03-14
资源大小:12198k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. package chapter9;
  2. import org.htmlparser.util.*;
  3. import org.htmlparser.Parser;
  4. import org.htmlparser.filters.*;
  5. import org.htmlparser.tags.LinkTag;
  6. import org.htmlparser.NodeFilter;
  7. import org.htmlparser.nodes.TextNode;
  8. import org.htmlparser.lexer.*;
  9. import org.htmlparser.lexer.Stream;
  10. import org.htmlparser.Node;
  11. import java.io.*;
  12. import java.net.*;
  13. import org.htmlparser.http.ConnectionManager;
  14. import org.htmlparser.visitors.TextExtractingVisitor;
  15. import org.htmlparser.filters.TagNameFilter;
  16. import org.htmlparser.filters.HasSiblingFilter;
  17. import org.htmlparser.util.ParserException;
  18. public class HtmlParserGetPageUrls {
  19.   public static void main (String[] args) throws ParserException
  20.   {
  21.   
  22.   try {
  23.   
  24.   getHtmlUrls("http://www.bnu.edu.cn/","GB2312");
  25.   } catch(ParserException e)
  26.   {
  27.   e.printStackTrace();
  28.   }
  29.     }
  30.   
  31.   public static void getHtmlUrls(String url , String pageEncoding)  throws ParserException
  32.   { 
  33.   NodeList nodeList = null;
  34.   
  35.   try { 
  36.    Parser parser = new Parser(url);
  37.        parser.setEncoding(pageEncoding);                            // 设置解析编码格式
  38.    // 可以使用下面filter来取出url连接
  39.     //nodeList = parser.parse(new TagNameFilter("A"));          // 使用TagNameFilter
  40.    nodeList = parser.parse(new NodeClassFilter(LinkTag.class)); // 使用NodeClassFilter
  41.    } catch (ParserException e) { 
  42.    e.printStackTrace();
  43.    }
  44.    
  45.   if(nodeList != null && nodeList.size() > 0) {                 // 循环遍历每个Url节点
  46.    for(int i = 0; i < nodeList.size(); i ++) {
  47.    String urlLink = ((LinkTag)nodeList.elementAt(i)).extractLink();
  48.    String LinkName = ((LinkTag)nodeList.elementAt(i)).getLinkText();
  49.    
  50.    if( urlLink.indexOf("bnu") == 0 || urlLink.indexOf("http") == 0 )
  51.    //System.out.println(LinkName +" : "+ urlLink);
  52.    System.out.println( urlLink );
  53.     }
  54.   }   
  55.   
  56.   }
  57. }