private IEnumerable <FreeDocument> GetDatas(IFreeDocument data) { var p = data[Column]; if (p == null || Crawler == null) { return(new List <FreeDocument>()); } var url = p.ToString(); var bufkey = url; var post = data.Query(PostData); if (Crawler.Http.Method == MethodType.POST) { bufkey += post; } var htmldoc = buffHelper.Get(bufkey); if (htmldoc == null) { HttpStatusCode code; var maxcount = 1; int.TryParse(data.Query(MaxTryCount), out maxcount); var count = 0; while (count < maxcount) { var docs = Crawler.CrawlData(url, out htmldoc, out code, post); if (HttpHelper.IsSuccess(code)) { buffHelper.Set(bufkey, htmldoc); return(docs); } Thread.Sleep(ErrorDelay); count++; } } else { return(Crawler.CrawlData(htmldoc.DocumentNode)); } return(new List <FreeDocument>()); }