随笔 - 262  文章 - 0  评论 - 7  阅读 - 19万

页面爬行模拟器

工作中要求测试文本抽取器(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

posted on   -Anny-  阅读(202)  评论(0编辑  收藏  举报
< 2010年9月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示