Пример #1
0
 private string GetTextVisbleType(RawlerLib.Web.Link link)
 {
     if (visbleType == LinkVisbleType.Label)
     {
         return(link.Label);
     }
     if (visbleType == LinkVisbleType.Url)
     {
         return(link.Url);
     }
     return(link.Tag);
 }
Пример #2
0
        private void NewMethod(bool runChildren)
        {
            List <RawlerLib.Web.Link> list;

            if (this.Parent is Links && ((Links)this.Parent).TargetTag == this.TargetTag)
            {
                var p = (Links)this.Parent;
                list = new List <RawlerLib.Web.Link>()
                {
                    p.currentLink
                };
            }
            else
            {
                if (string.IsNullOrEmpty(TargetTag))
                {
                    if (useAbsolutetLink)
                    {
                        list = new List <RawlerLib.Web.Link>(RawlerLib.Web.GetLinkForHTML(GetText(), GetPageUrl()));
                    }
                    else
                    {
                        list = new List <RawlerLib.Web.Link>(RawlerLib.Web.GetLinkForHTML(GetText()));
                    }
                }
                else
                {
                    if (useAbsolutetLink)
                    {
                        list = new List <RawlerLib.Web.Link>(RawlerLib.Web.GetLinkForHTML(GetText(), GetPageUrl(), TargetTag));
                    }
                    else
                    {
                        list = new List <RawlerLib.Web.Link>(RawlerLib.Web.GetLinkForHTML(GetText(), null, TargetTag));
                    }
                }
            }

            if (LabelFilter != null && LabelFilter.Length > 0)
            {
                list = new List <RawlerLib.Web.Link>(list.Where(n => n.Label.Contains(LabelFilter)));
            }
            if (UrlFilter != null && UrlFilter.Length > 0)
            {
                list = new List <RawlerLib.Web.Link>(list.Where(n => n.Url.Contains(UrlFilter)));
            }
            if (TagFilter != null && TagFilter.Length > 0)
            {
                list = new List <RawlerLib.Web.Link>(list.Where(n => n.TagWithoutUrl.Contains(TagFilter)));
            }
            if (CheckUrl)
            {
                if (useAbsolutetLink)
                {
                    list = list.Where(n => Uri.IsWellFormedUriString(n.Url, UriKind.Absolute)).ToList();
                }
                else
                {
                    list = list.Where(n => Uri.IsWellFormedUriString(n.Url, UriKind.RelativeOrAbsolute)).ToList();
                }
            }

            if (list.Count == 0 && EmptyTree != null)
            {
                EmptyTree.SetParent(this.Parent);
                EmptyTree.Run();
            }

            if (emptyReport && list.Count() == 0)
            {
                ReportManage.ErrReport(this, "対象が見つかりませんでした");
            }

            if (IsSingle == false)
            {
                RunChildrenForArray <RawlerLib.Web.Link>(runChildren, list, (n) => GetTextVisbleType(n), (n) => { currentLink = n; });
            }
            else
            {
                if (this.texts.Count() > 0)
                {
                    SetText(GetTextVisbleType(list.First()));
                    RunChildren(runChildren);
                }
            }
        }