protected List <ImageItem> ScrapeImageItems (HtmlNodeCollection nodes, Uri host) { return nodes.AsParallel () .Select (node => new ImageItem (node.GetAttributeValue ("src", null), node.InnerText)) .Where (item => Uri.IsWellFormedUriString (item.Src, UriKind.RelativeOrAbsolute)) .Where (item => !options.IgnoreOutsideReferences || (Uri.IsWellFormedUriString (item.Src, UriKind.Absolute) && (new Uri (item.Src).Host == host.Host))) .ToList (); }
protected List <LinkItem> ScrapeLinkItems (HtmlNodeCollection nodes, Uri host) { return nodes.AsParallel () .Select (node => new LinkItem (node.GetAttributeValue ("href", null), node.InnerText)) .Where (item => Uri.IsWellFormedUriString (item.HRef, UriKind.RelativeOrAbsolute)) .Where (item => !options.IgnoreOutsideReferences || (Uri.IsWellFormedUriString (item.HRef, UriKind.Absolute) && (new Uri (item.HRef).Host == host.Host))) .Where (item => !finishedLinkItems.Contains (item) && !queuedLinkItems.Contains (item)) .ToList (); }