成都网站建设设计

将想法与焦点和您一起共享

asp.net中怎么采集网页图片-创新互联

这篇文章将为大家详细讲解有关asp.net中怎么采集网页图片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

甘孜州网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
   public class GatherPic
   {
       private string savePath;
       private string getUrl;
       private WebBrowser wb;
       private int iImgCount;
       //初始化参数
       public GatherPic(string sWebUrl, string sSavePath)
       {
           this.getUrl = sWebUrl;
           this.savePath = sSavePath;
       }
       //开始采集
       public bool start()
       {
           if (getUrl.Trim().Equals(""))
           {
               MessageBox.Show("哪来的虾米连网址都没输!");
               return false;
           }
           this.wb = new WebBrowser();
           this.wb.Navigate(getUrl);
           //委托事件
           this.wb.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
           return true;
       }
       //WebBrowser.DocumentCompleted委托事件
       private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
       {
           //页面里框架iframe加载完成不掉用SearchImgList()
           if (e.Url != wb.Document.Url) return;
           SearchImgList();
       }
       //检查出所有图片并采集到本地
       public void SearchImgList()
       {
           string sImgUrl;
           //取得所有图片地址
           HtmlElementCollection elemColl = this.wb.Document.GetElementsByTagName("img");
           this.iImgCount = elemColl.Count;
           foreach (HtmlElement elem in elemColl)
           {
               sImgUrl = elem.GetAttribute("src");
               //调用保存远程图片函数
               SaveImageFromWeb(sImgUrl, this.savePath);
           }
       }
       //保存远程图片函数
       public int SaveImageFromWeb(string imgUrl, string path)
       {
           string imgName = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("/") + 1);
           path = path + "\\" + imgName;
           string defaultType = ".jpg";
           string[] imgTypes = new string[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
           string imgType = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("."));
           foreach (string it in imgTypes)
           {
               if (imgType.ToLower().Equals(it))
                   break;
               if (it.Equals(".bmp"))
                   imgType = defaultType;
           }
           try
           {
               HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl);
               request.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Natas.Robot)";
               request.Timeout = 10000;
               WebResponse response = request.GetResponse();
               Stream stream = response.GetResponseStream();
               if (response.ContentType.ToLower().StartsWith("image/"))
               {
                   byte[] arrayByte = new byte[1024];
                   int imgLong = (int)response.ContentLength;
                   int l = 0;
                   // CreateDirectory(path);
                   FileStream fso = new FileStream(path, FileMode.Create);
                   while (l < imgLong)
                   {
                       int i = stream.Read(arrayByte, 0, 1024);
                       fso.Write(arrayByte, 0, i);
                       l += i;
                   }
                   fso.Close();
                   stream.Close();
                   response.Close();
                   return 1;
               }
               else
               {
                   return 0;
               }
           }
           catch (WebException)
           {
               return 0;
           }
           catch (UriFormatException)
           {
               return 0;
           }
       }
   }
}
//-----------------调用代码--------------------
GatherPic gatherpic = new GatherPic(“http://www.baidu.com”,"C:\test");
//请确保c:\下存在test路径
gatherpic.start()


关于asp.net中怎么采集网页图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页名称:asp.net中怎么采集网页图片-创新互联
本文地址:http://chengdu.cdxwcx.cn/article/deegeh.html