Exemple #1
0
        //用来获取整个网站中所有的a标签中的连接,并请求
        public void TestMain()
        {
            //如果href是urls的子集,就结束
            if (PageHandle.ChildList(urls, href))
            {
                return;
            }
            else
            {
                //暂存urls中的内容,后期循环请求使用
                List <string> list1 = new List <string>();
                list1.AddRange(urls);

                //将得到的href去重 更改为http开头
                href = PageHandle.ChangeHttp(href, baseurl);
                href = PageHandle.RemoveRepeat(href);

                //将href中新的url添加到urls中
                urls = PageHandle.ListMemIn(urls, href);


                //请求新的url,得到新的href
                foreach (string m in href)
                {
                    //新的url则请求
                    if (!(list1.Contains(m)))
                    {
                        string pam   = " ";
                        string htmls = Request.GetRequest(m, pam);
                        href = PageHandle.GetHref(htmls);
                        //将得到的href去重 更改为http开头
                        href = PageHandle.ChangeHttp(href, baseurl);
                        href = PageHandle.RemoveRepeat(href);

                        //当输入url错误时,记录错误的url和原因
                        string str = PageHandle.GetHttpError(m, htmls);
                        Errorurls = PageHandle.StrJoinList(Errorurls, str);

                        //新的href循环
                        TestMain();
                    }
                }
            }
        }
Exemple #2
0
        //判断列表中的成员是否是http://格式  不是的转换成http://格式
        public static List <string> ChangeHttp(List <string> list, string baseurl)
        {
            string        ss;
            List <string> list1 = new List <string>();

            foreach (string m in list)
            {
                if (PageHandle.HrefStartWithHttp(m))
                {
                    list1.Add(m);
                }
                else
                {
                    ss = PageHandle.JoinUrl(baseurl, m);
                    list1.Add(ss);
                }
            }
            return(list1);
        }