/// <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"); } }
/// <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"); } } } }