Exemplo n.º 1
0
        public override IDownloader GetDownloader()
        {
            Extension.Downloader.WebDriver.WebDriverDownloader downloader = new Extension.Downloader.WebDriver.WebDriverDownloader(Browser);
            if (Login != null)
            {
                downloader.Login = Login.Login;
            }
            if (DownloadValidations != null)
            {
                downloader.DownloadValidation = page =>
                {
                    DownloadValidationResult result = DownloadValidationResult.Success;
                    foreach (var downloadValidation in DownloadValidations)
                    {
                        var r = downloadValidation.Validate(page, out result);
                        if (!r)
                        {
                            break;
                        }
                    }

                    return(result);
                };
            }
            if (VerifyCode != null)
            {
                downloader.VerifyCode = VerifyCode.Verify;
            }
            return(downloader);
        }
 public override bool Validate(Page page, out DownloadValidationResult result)
 {
     if (page.Exception != null)
     {
         if (string.IsNullOrEmpty(ExceptionMessage))
         {
             result = Result;
             return(false);
         }
         if (page.Exception.Message.Contains(ExceptionMessage))
         {
             result = Result;
             return(false);
         }
     }
     result = DownloadValidationResult.Success;
     return(true);
 }
        public override bool Validate(Page page, out DownloadValidationResult result)
        {
            string rawText = page.Content;

            if (string.IsNullOrEmpty(rawText))
            {
                throw new SpiderExceptoin("Download failed or response is null.");
            }
            if (rawText.Contains(ContainsString))
            {
                result = Result;
                return(false);
            }
            else
            {
                result = DownloadValidationResult.Success;
                return(true);
            }
        }
Exemplo n.º 4
0
        public override IDownloader GetDownloader()
        {
            var downloader = new HttpClientDownloader()
            {
                RedialLimit = RedialLimit
            };

            if (DownloadValidations != null)
            {
                downloader.DownloadValidation = page =>
                {
                    DownloadValidationResult result = DownloadValidationResult.Success;
                    foreach (var downloadValidation in DownloadValidations)
                    {
                        var r = downloadValidation.Validate(page, out result);
                        if (!r)
                        {
                            break;
                        }
                    }

                    return(result);
                };
            }
            if (GeneratePostBody != null)
            {
                downloader.GeneratePostBody = (s, r) =>
                {
                    List <string> arguments = new List <string>();
                    foreach (var arg in GeneratePostBody.ArgumnetNames)
                    {
                        var tmp = s.Arguments.ContainsKey(arg) ? s.Arguments[arg] : "";
                        arguments.Add(tmp);
                    }
                    r.PostBody = string.Format(r.PostBody, arguments.ToArray());
                };
            }
            return(downloader);
        }
Exemplo n.º 5
0
        public override IDownloader GetDownloader()
        {
            var downloader = new Extension.Downloader.FileDownloader();

            if (DownloadValidations != null)
            {
                downloader.DownloadValidation = page =>
                {
                    DownloadValidationResult result = DownloadValidationResult.Success;
                    foreach (var downloadValidation in DownloadValidations)
                    {
                        var r = downloadValidation.Validate(page, out result);
                        if (!r)
                        {
                            break;
                        }
                    }

                    return(result);
                };
            }
            return(downloader);
        }
 public abstract bool Validate(Page page, out DownloadValidationResult result);
Exemplo n.º 7
0
 public abstract bool Validate(Page page, out DownloadValidationResult result);