麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

網頁中對圖像的采集

2019-11-17 01:35:08
字體:
來源:轉載
供稿:網友

網頁中對圖像的采集

有時我們需要采集一些信息到自己的數據庫,本地磁盤,我們經常使用的是WebClient,WebRequest等等,今天主要說一下,對于一個URI地址,采集這個頁面上所有的圖像資源,下面是源代碼,供大家參考,學習。

   /// <summary>    /// 下載指定URL下的所有圖片    /// </summary>    public class WebPageImage    {        /// <summary>        /// 獲取網頁中全部圖片        /// </summary>        /// <param name="url">網頁地址</param>        /// <param name="charSet">網頁編碼,為空自動判斷</param>        /// <returns>全部圖片顯示代碼</returns>        public string getImages(string url, string charSet)        {            string s = getHtml(url, charSet);            return getPictures(s, url);        }        /// <summary>        /// 獲取網頁中全部圖片        /// </summary>        /// <param name="url">網址</param>        /// <returns>全部圖片代碼</returns>        public string getImages(string url)        {            return getImages(url, "");        }        string doman(string url)        {            Uri u = new Uri(url);            return u.Host;        }        /// <summary>        /// 獲取網頁內容        /// </summary>        /// <param name="url">網站地址</param>        /// <param name="charSet">目標網頁的編碼,如果傳入的是null或者"",那就自動分析網頁的編碼 </param>        /// <returns></returns>        string getHtml(string url, string charSet)        {            WebClient myWebClient = new WebClient();            //創建WebClient實例myWebClient             // 需要注意的:             //有的網頁可能下不下來,有種種原因比如需要cookie,編碼問題等等             //這是就要具體問題具體分析比如在頭部加入cookie             // webclient.Headers.Add("Cookie", cookie);             //這樣可能需要一些重載方法。根據需要寫就可以了             //獲取或設置用于對向 Internet 資源的請求進行身份驗證的網絡憑據。             myWebClient.Credentials = CredentialCache.DefaultCredentials;            //如果服務器要驗證用戶名,密碼             //NetworkCredential mycred = new NetworkCredential(struser, strpassWord);             //myWebClient.Credentials = mycred;             //從資源下載數據并返回字節數組。(加@是因為網址中間有"/"符號)             byte[] myDataBuffer = myWebClient.DownloadData(url);            string strWebData = Encoding.Default.GetString(myDataBuffer);            //獲取網頁字符編碼描述信息             Match charSetMatch = Regex.Match(strWebData, "<meta([^<]*)charset=([^<]*)/"", RegexOptions.IgnoreCase | RegexOptions.Multiline);            string webCharSet = charSetMatch.Groups[2].Value.Replace("/"", "");            if (charSet == null || charSet == "")                charSet = webCharSet;            if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)                strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);            return strWebData;        }        string getPictures(string data, string url)        {            MatchCollection ps = Regex.Matches(data, @"<img/b[^<>]*?/bsrc[/s/t/r/n]*=[/s/t/r/n]*[""']?[/s/t/r/n]*(?<imgUrl>[^/s/t/r/n""'<>]*)[^<>]*?/?[/s/t/r/n]*>");            string s = string.Empty;            for (int i = 0; i < ps.Count; i++)            {                pictures p = new pictures(ps[i].Value, url);                s += p.GetHtml + "<br />" + Environment.NewLine;            }            return s;        }        /// <summary>        /// 圖片實體        /// 圖片文件屬性處理類        /// </summary>        public class pictures        {            public pictures(string strHtml, string baseUrl)            {                _html = strHtml;                Uri u1 = new Uri(baseUrl);                _doman = u1.Host;                _baseUrl = u1.Scheme + "://" + _doman;                setSrc();            }            PRivate string _html = string.Empty;            private string _baseUrl = string.Empty;            private string _doman = string.Empty;            public string GetHtml            {                get { return _html; }            }            public string Alt            {                get                {                    return GetAttribute("alt")[0];                }            }            public string Src            {                get                {                    string s = GetAttribute("src")[0];                    return s;                }            }            /// <summary>            /// 根據基路徑把相對路徑轉換成絕對徑            /// </summary>            /// <param name="baseUrl">基礎路徑</param>            /// <param name="u">待轉換的相對路徑</param>            /// <returns>絕對路徑</returns>            public string absUrl(string baseUrl, string u)            {                Uri ub = new Uri(baseUrl);                Uri ua = new Uri(ub, u);                return ua.AbsoluteUri;            }            private void setSrc()            {                string strPattern = @"src[/s/t/r/n]*=[/s/t/r/n]*[""']?/S+[""']?";                string src = GetAttribute("src")[0].ToLower();                if (!(src.IndexOf("http://") == 0 || src.IndexOf("https://") == 0) && _baseUrl.Length > 10)                {                    src = absUrl(_baseUrl, src);                    string s = "src=/"" + src + "/"";                    _html = Regex.Replace(_html, strPattern, s);                }            }            /// <summary>            /// 獲取HTML代碼中標簽屬性            /// </summary>            /// <param name="strHtml">HTML代碼</param>            /// <param name="strAttributeName">屬性名稱</param>            /// <returns>屬性值集合</returns>            private string[] GetAttribute(string strAttributeName)            {                List<string> lstAttribute = new List<string>();                string strPattern = string.Format(                    @"{0}[/s/t/r/n]*=[/s/t/r/n]*[""']?/S+[""']?",                    strAttributeName                    );                MatchCollection matchs = Regex.Matches(_html, strPattern, RegexOptions.IgnoreCase);                foreach (Match m in matchs)                {                    lstAttribute.Add(m.Value.Split('=')[1].Replace("/"", "").Replace("'", ""));                }                if (lstAttribute.Count == 0) lstAttribute.Add("");                return lstAttribute.ToArray();            }        }    }

調用:

new WebPageImage().getImages("http://www.sina.com")

結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品亚洲午夜久久久久91 | 亚洲综人网 | 免费久久久| 依依成人精品视频 | 欧美精品一区二区三区久久久 | 国产日韩在线 | 国产成人综合在线观看 | 欧美成人三级视频 | 欧美大穴 | 高清国产在线 | 国产成人强伦免费视频网站 | 午夜在线观看视频网站 | 黄色7777| 国产资源在线观看 | 亚洲精品午夜国产va久久成人 | 欧美成人精品一区二区男人小说 | 成人男女啪啪免费观看网站四虎 | 中文字幕综合在线观看 | 北原夏美av | 中文字幕在线观看日韩 | a免费毛片 | 日韩精品中文字幕一区二区三区 | 日本视频在线免费观看 | 国产午夜亚洲精品午夜鲁丝片 | 亚洲视频在线视频 | 午夜视频在线免费观看 | 91精品国产九九九久久久亚洲 | 92精品国产自产在线 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 91福利在线观看 | 55夜色66夜色国产精品视频 | 久草在线资源福利站 | h视频免费看 | 特色一级黄色片 | 亚洲网在线观看 | 欧美精品日日鲁夜夜添 | 粉嫩粉嫩一区二区三区在线播放 | 久久久久久麻豆 | 久久久久久三区 | 一区二区三区国产视频 | 91精品最新国内在线播放 |