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); } }
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); }
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);
public abstract bool Validate(Page page, out DownloadValidationResult result);