Пример #1
0
        /// <summary>
        /// 获取单个图片
        /// </summary>
        /// <param name="itemUrl"></param>
        /// <param name="html"></param>
        public void GetSigImage(string itemUrl, string html, string savePath)
        {
            var imgR = new Regex(RegexHelp.Other.GetSingleImage, RegexOptions.Singleline);
            var imgM = imgR.Match(html);

            if (imgM == null || imgM.Groups["Url"].Value == "")
            {
                AddErrorMsg(string.Format("获取URL:{0} 的图片失败!\r\n", itemUrl));
                return;
            }

            var imgUrl = HtmlHelp.NeedHost(itemUrl, imgM.Groups["Url"].Value);

            lock (Multithreading.ObjLockExistFile)
            {
                if (File.Exists(savePath + "/" + Path.GetFileName(imgUrl)))
                {
                    if (form.ChkNeglect.Checked)
                    {
                        AddErrorMsg(string.Format("跳过已存在的图片:{0}!\r\n", imgUrl));
                    }
                    return;
                }
            }

            AddSuccessMsg(string.Format("正在下载图片:{0} \r\n", imgUrl));

            var  filePath = savePath + "/" + Path.GetFileName(imgUrl);
            bool b        = DownHelp.DownImage(imgUrl, filePath, 1024, itemUrl, 5);

            if (b)
            {
                AddSuccessMsg(string.Format("下载图片:{0} 成功\r\n", imgUrl));
            }
            else
            {
                var txt = string.Format("下载图片:{0} 失败\r\n Url:{1}\r\n", imgUrl, itemUrl);
                AddErrorMsg(txt);
                HtmlHelp.SaveStringToTxt(txt, "FaildMsg.txt");
            }
        }
Пример #2
0
        /// <summary>
        /// 获取更多图片
        /// </summary>
        /// <param name="moreUrl">查看更多Url</param>
        public void GetMoreImage(string moreUrl, string savePath)
        {
            AddSuccessMsg(string.Format("正在获取URL:{0} 的html!\r\n", moreUrl));

            var html = DownHelp.GetHtmlString(moreUrl, Encoding.UTF8, 5);

            if (html == "")
            {
                AddErrorMsg(string.Format("获取URL:{0} 的html失败!\r\n", moreUrl));
                return;
            }

            AddSuccessMsg(string.Format("获取URL:{0} 的html成功!\r\n", moreUrl));


            //获取放大镜集合
            var mReg = new Regex(RegexHelp.Other.GetMaxButton, RegexOptions.Singleline);
            var mms  = mReg.Matches(html);

            if (mms != null && mms.Count > 0)
            {
                //获取放大后的图片
                foreach (Match m in mms)
                {
                    var mUrl = m.Groups["Url"].Value;
                    mUrl = HtmlHelp.NeedHost(moreUrl, mUrl);
                    var mHtml = DownHelp.GetHtmlString(mUrl, Encoding.UTF8, 5);

                    var mmReg = new Regex(RegexHelp.Other.GetImageWhenMax, RegexOptions.Singleline);
                    var mmm   = mmReg.Match(mHtml);
                    if (mmm == null || mmm.Groups["Url"].Value == "")
                    {
                        AddErrorMsg(string.Format("获取URL:{0} 的图片失败!\r\n", mUrl));
                        return;
                    }

                    var imgUrl = HtmlHelp.NeedHost(mUrl, mmm.Groups["Url"].Value);

                    lock (Multithreading.ObjLockExistFile)
                    {
                        if (File.Exists(savePath + "/" + Path.GetFileName(imgUrl)))
                        {
                            if (form.ChkNeglect.Checked)
                            {
                                AddErrorMsg(string.Format("跳过已存在的图片:{0}!\r\n", imgUrl));
                            }
                            continue;
                        }
                    }

                    AddSuccessMsg(string.Format("正在下载图片:{0} \r\n", imgUrl));
                    var  filePath = savePath + "/" + Path.GetFileName(imgUrl);
                    bool b        = DownHelp.DownImage(imgUrl, filePath, 1024, moreUrl, 5);

                    if (b)
                    {
                        AddSuccessMsg(string.Format("下载图片:{0} 成功\r\n", imgUrl));
                    }
                    else
                    {
                        var txt = string.Format("下载图片:{0} 失败\r\n Url:{1}\r\n", imgUrl, moreUrl);
                        AddErrorMsg(txt);
                        HtmlHelp.SaveStringToTxt(txt, "FaildMsg.txt");
                    }
                }
            }
            else
            {
                AddErrorMsg(string.Format("没有获取到放大镜集合:{0}!\r\n", moreUrl));
                return;

                //直接获取图片
                var msReg = new Regex(RegexHelp.Other.GetImageWhenNotMax, RegexOptions.Singleline);
                var imgMs = msReg.Matches(html);

                foreach (Match m in imgMs)
                {
                    var imgUrl = m.Groups["Url"].Value;
                    imgUrl = HtmlHelp.NeedHost(moreUrl, imgUrl);

                    lock (Multithreading.ObjLockExistFile)
                    {
                        if (File.Exists(savePath + "/" + Path.GetFileName(imgUrl)))
                        {
                            if (form.ChkNeglect.Checked)
                            {
                                AddErrorMsg(string.Format("跳过已存在的图片:{0}!\r\n", imgUrl));
                            }
                            continue;
                        }
                    }

                    AddSuccessMsg(string.Format("正在下载图片:{0} \r\n", imgUrl));

                    var  filePath = savePath + "/" + Path.GetFileName(imgUrl);
                    bool b        = DownHelp.DownImage(imgUrl, filePath, 1024, moreUrl, 5);

                    if (b)
                    {
                        AddSuccessMsg(string.Format("下载图片:{0} 成功\r\n", imgUrl));
                    }
                    else
                    {
                        var txt = string.Format("下载图片:{0} 失败\r\n Url:{1}\r\n", imgUrl, moreUrl);
                        AddErrorMsg(txt);
                        HtmlHelp.SaveStringToTxt(txt, "FaildMsg.txt");
                    }
                }
            }
        }