页面爬行模拟器

工作中要求测试文本抽取器(Extractor),需要提供一个页面爬行模拟器(CrawlerSimulator)向Extractor提供爬行结果,基本需求如下:

1. 用web service实现;

2. 提供对外API可以用<key,value>的形式(确切的是<url,content>),将对应的页面信息存入缓存 Dictionary<string, string> cacheHtml 中,提供API从缓存中查询和移除,主要有3个API(AddEntry,RemoveEntry,RetriveEntry);

3. 提供ashx或者aspx页面供Extractor调用;

4. 可以随机生成页面内容(用DataFactory实现,由微软提供);

5. 可以覆盖所有Extractor可以捕获的错误信息;

6. 向Extractor返回不同的HTTP Status Code。

其中,有关HTTP301和HTTP302的情况,下面是其简单的区别

301 redirect: 301 代表永久性转移(Permanently Moved),302 redirect: 302 代表暂时性转移(Temporarily Moved )

下面是其模拟方法:

     case CrawlerOptions.HTTP301:
                    context.Response.StatusCode = (int)HttpStatusCode.Moved;
                    context.Response.AddHeader("Location", "http://www.msn.com");
                    break;
                case CrawlerOptions.HTTP302:                   
                    context.Response.Redirect("http://www.msn.com");

补充ing

你可能感兴趣的:(模拟器)