亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

網頁中對圖像的采集

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")

結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品一区二区三区| 一区二区三区www| 欧美猛少妇色xxxxx| 欧美性猛交99久久久久99按摩| 91久久综合亚洲鲁鲁五月天| 国产精品久久久久77777| 欧美极品少妇xxxxx| 国产视频精品va久久久久久| 日本韩国欧美精品大片卡二| 国产精品极品在线| 色老头一区二区三区| 97精品一区二区视频在线观看| 欧美性猛交xxxx乱大交| 欧美日韩精品在线观看| 欧美理论在线观看| 久久精品国产成人精品| 久久综合亚洲社区| 91免费视频国产| 日韩美女在线播放| 欧美在线视频观看免费网站| 国产精品一区二区3区| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲综合成人婷婷小说| 国产91对白在线播放| 国产精品综合不卡av| 日韩毛片在线看| 成人观看高清在线观看免费| 色老头一区二区三区在线观看| 91大神福利视频在线| 91精品视频大全| 国产成人精品日本亚洲专区61| 欧美在线中文字幕| 777国产偷窥盗摄精品视频| 成人激情视频在线播放| 欧美精品在线视频观看| 国产成人91久久精品| 亚洲精品在线观看www| 亚洲女同精品视频| 国产精品久久久av久久久| 欧美成人免费网| 日韩精品视频三区| 欧美插天视频在线播放| 综合136福利视频在线| 亚洲九九九在线观看| 亚洲成人网久久久| 亚洲free性xxxx护士白浆| 日韩美女免费观看| 欧美成人国产va精品日本一级| 亚洲免费电影在线观看| 亚洲欧美制服第一页| 国产原创欧美精品| 亚洲成人av在线播放| 4444欧美成人kkkk| 国产成人午夜视频网址| 国产91精品高潮白浆喷水| 国产精品伦子伦免费视频| 日韩成人黄色av| 亚洲自拍偷拍在线| 欧美精品久久久久久久久| 国产成人在线一区| 成人性教育视频在线观看| 成人精品视频99在线观看免费| 91伊人影院在线播放| 日韩激情视频在线播放| 亚洲午夜性刺激影院| 韩国三级日本三级少妇99| 欧美情侣性视频| 韩国视频理论视频久久| 91久久精品美女高潮| 亚洲韩国日本中文字幕| 欧美日韩亚洲成人| 国产精品扒开腿做爽爽爽男男| 色婷婷av一区二区三区在线观看| 精品亚洲男同gayvideo网站| 日本高清+成人网在线观看| 尤物yw午夜国产精品视频明星| 国产偷国产偷亚洲清高网站| 国产精品欧美日韩一区二区| 亚洲a区在线视频| 日韩欧美黄色动漫| 欧美极品美女视频网站在线观看免费| 美女性感视频久久久| 日韩欧美a级成人黄色| 中文字幕欧美日韩va免费视频| 欧美夜福利tv在线| 丝袜情趣国产精品| 日韩精品免费在线视频观看| 亚洲国产精久久久久久| 一区二区欧美激情| 国产这里只有精品| 国产精品海角社区在线观看| 国产精品va在线播放| 午夜精品蜜臀一区二区三区免费| 久久久久久久久综合| 亚洲视频一区二区| 欧美精品一本久久男人的天堂| 成人网页在线免费观看| 国产91热爆ts人妖在线| 国产美女精品免费电影| 欧美高清视频免费观看| 亚洲自拍偷拍福利| 在线观看国产精品91| 中文字幕日韩综合av| 亚洲精品久久久久中文字幕欢迎你| 久久久久久久久久亚洲| 欧美一区深夜视频| 精品国产乱码久久久久久婷婷| 国产成人一区二区| 欧美一区二区大胆人体摄影专业网站| 亚洲成人在线网| 亚洲精品97久久| 亚洲人成网站777色婷婷| 91亚洲精品一区二区| 成人欧美在线视频| 这里精品视频免费| 欧美精品第一页在线播放| 丝袜亚洲欧美日韩综合| 国产视频精品自拍| 欧美综合第一页| 2019中文字幕在线| 国产69精品久久久| 欧美极品少妇全裸体| 狠狠综合久久av一区二区小说| 欧美日韩在线第一页| 欧美大学生性色视频| 欧美最猛黑人xxxx黑人猛叫黄| 黄网站色欧美视频| 亚洲码在线观看| 国产精品欧美在线| 亚洲天堂色网站| 久久精品美女视频网站| 亚洲精品久久在线| 欧亚精品中文字幕| 亚洲va久久久噜噜噜| 午夜精品久久久久久久男人的天堂| 亚洲最大成人网色| 亚洲国产私拍精品国模在线观看| 麻豆国产精品va在线观看不卡| 国产91热爆ts人妖在线| 日韩欧美国产网站| 中文字幕一精品亚洲无线一区| 欧洲亚洲免费视频| 欧美疯狂做受xxxx高潮| 国产脚交av在线一区二区| 久久久久久久一| 欧美在线视频播放| 欧美放荡办公室videos4k| 一区二区三区精品99久久| 久热精品视频在线免费观看| 中文字幕在线观看亚洲| 欧美老少做受xxxx高潮| 国产区亚洲区欧美区| 欧美黄色片免费观看| 日韩高清欧美高清| 亚洲人成网在线播放| 久热爱精品视频线路一| 日韩一二三在线视频播| 精品国产31久久久久久| 亚洲第一精品电影| 日韩一二三在线视频播| 亚洲一区二区日本| 国模精品一区二区三区色天香| 欧美高清不卡在线| 国内偷自视频区视频综合|