HtmlParserGetBaiduUrls.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 HtmlParserGetBaiduUrls {
  19.   public static void main (String[] args) throws ParserException
  20.   {
  21.   try {
  22.     getBaiduUrls("http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=Lucene&pn=0&ver=0&cl=3","GB2312");
  23.   } catch(ParserException e)
  24.   {
  25.   e.printStackTrace();
  26.   }
  27.     }
  28.   
  29.   public static void getBaiduUrls(String url , String pageEncoding)  throws ParserException
  30.   { 
  31.   NodeList nodeList = null;
  32.   try { 
  33.    Parser parser = new Parser(url);
  34.        parser.setEncoding(pageEncoding);                            // 设置解析编码格式
  35.    // Baidu 检索结果的url连接和标题
  36.        nodeList = parser.parse( new AndFilter( new HasAttributeFilter("target") , 
  37.                                         new HasAttributeFilter("onclick")));
  38.    } catch (ParserException e) { 
  39.    e.printStackTrace();
  40.    }
  41.   if(nodeList != null && nodeList.size() > 0) {                 // 循环遍历每个Url节点
  42.    for(int i = 0; i < nodeList.size(); i ++) {
  43.    String urlLink = ((LinkTag)nodeList.elementAt(i)).extractLink();
  44.    String LinkName = ((LinkTag)nodeList.elementAt(i)).getLinkText();
  45.    
  46.    if( urlLink.indexOf("bnu") == 0 || urlLink.indexOf("http") == 0 )
  47.    System.out.println("结果 "+ i +" 标题:"+LinkName);
  48.    System.out.println("       链接:"+urlLink );
  49.     }
  50.   }
  51.   }
  52.   
  53. }