WEB开发网
开发学院软件开发Java dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络... 阅读

dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络爬虫

 2010-07-30 00:00:00 来源:WEB开发网   
核心提示: 清单 2. URL 识别publicArrayList<URL>urlDetector(StringhtmlDoc){finalStringpatternString="<[a|A]\\s+href=([^>]*\\s*>)";Patternpa

清单 2. URL 识别

public ArrayList<URL> urlDetector(String htmlDoc){ 
  final String patternString = "<[a|A]\\s+href=([^>]*\\s*>)";      
  Pattern pattern = Pattern.compile(patternString,Pattern.CASE_INSENSITIVE);  
  ArrayList<URL> allURLs = new ArrayList<URL>(); 
  Matcher matcher = pattern.matcher(htmlDoc); 
  String tempURL; 
  //初次匹配到的url是形如:<a href="http://bbs.life.xxx.com.cn/" target="_blank"> 
  //为此,需要进行下一步的处理,把真正的url抽取出来, 
 //可以对于前两个"之间的部分进行记录得到url 
  while(matcher.find()){ 
    try { 
      tempURL = matcher.group();       
      tempURL = tempURL.substring(tempURL.indexOf("\"")+1);     
      if(!tempURL.contains("\"")) 
        continue; 
      tempURL = tempURL.substring(0, tempURL.indexOf("\""));     
    } catch (MalformedURLException e) { 
      e.printStackTrace(); 
    } 
  } 
  return allURLs;   
} 

按照“<[a|A]\\s+href=([^>]*\\s*>)”这个正则表达式可以匹配出 URL 所在的整个标签,形如“<a href="http://bbs.life.xxx.com.cn/" target="_blank">”,所以在循环获得整个标签之后,需要进一步提取出真正的 URL,我们可以通过截取标签中前两个引号中间的内容来获得这段内容。如此之后,我们可以得到一个初步的属于该网页的 URL 集合。

上一页  1 2 3 4 5 6  下一页

Tags:dySE 一个 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接