CSDN博客

img caoxu1987728

ISpiderReportable接口的实现

发表于2008/10/1 16:46:00  750人阅读

 ISpiderReportable就是当Spider程序发现链接时,完成对数据的处理,报告了Spider的发现。

共有如下几个方法:


      public boolean foundInternalLink(String url);

   public boolean foundExternalLink(String url);

   public boolean foundOtherLink(String url);

   public void processPage(HTTP page);

   public void completePage(HTTP page,boolean error);

   public boolean getRemoveQuery();  //自我感觉这个比较重要,细看!

   public void spiderComplete();

 

具体实现代码如下:

  1. package com.heaton.bot;
  2. /**
  3.  * This interface represents a class that
  4.  * the spider can report to(代理). As the spider
  5.  * does its job, events from this interface
  6.  * will be called.
  7.  */
  8. public interface ISpiderReportable {
  9.   /**
  10.    * Called when the spider finds an internal
  11.    * link. An internal link shares the same
  12.    * host address as the URL that started
  13.    * the spider.
  14.    *
  15.    * @return true - The spider should add this URL to the workload.
  16.    * 加入到管理作业中。
  17.    * false - The spider should not add this URL to the workload.
  18.    */
  19.   public boolean foundInternalLink(String url);
  20.   /**
  21.    * Called when the spider finds an external
  22.    * link. An external link does not share the
  23.    * same host address as the URL that started
  24.    * the spider.
  25.    * @return true - The spider should add this URL to the workload.
  26.    * false - The spider should not add this URL to the workload.
  27.    */
  28.   public boolean foundExternalLink(String url);
  29.   /**
  30.    * Called when the spider finds a type of
  31.    * link that does not point to another HTML
  32.    * page(for example a mailto link).
  33.    * @return true - The spider should add this URL to the workload.
  34.    * false - The spider should not add this URL to the workload.
  35.    */
  36.   public boolean foundOtherLink(String url);
  37.   /**
  38.    * Called to actually process a page. This is where the
  39.    * work actually done by the spider is usually preformed.
  40.    */
  41.   public void processPage(HTTP page);
  42.   /**
  43.    * Called to request that a page be processed.
  44.    * This page was just downloaded by the spider.
  45.    *
  46.    * @param page The page contents.
  47.    * @param error true - This page resulted in an HTTP error.
  48.    * false - This page downloaded correctly.
  49.    */
  50.   public void completePage(HTTP page,boolean error);
  51.   /**
  52.    * This method is called(唤醒,调用) by the spider to determine if
  53.    * query strings should be removed. A query string
  54.    * is the text that follows a ? on a URL. For example:
  55.    * 我的理解为:query string为id=a;pwd=b。但通过下面的解释好像
  56.    * http://www.heat-on.com/cgi-bin/login.jsp?id=a;pwd=b
  57.    * 一个整句都是query string。
  58.    * http://www.heat-on.com/cgi-bin/login.jsp?id=a;pwd=b
  59.    *
  60.    * Everything to the left of, and including, the ? is
  61.    * 一切左边的(包含'?')……
  62.    * considered part of the query string.
  63.    *
  64.    * @return true - Query string should be removed.
  65.    * false - Leave query strings as is.
  66.    */
  67.   public boolean getRemoveQuery();
  68.   /**
  69.    * Called when the spider has no more work.
  70.    */
  71.   public void spiderComplete();
  72. }

接口不能实现什么功能,在GetSite类中也没有具体的实现,只是简单地return true。那我也只能寄希望于Spider类,它是bot乃至爬虫的核心。

0 0

相关博文

我的热门文章

img
取 消
img