亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net 中怎么抓取網頁源代碼

發布時間:2021-07-16 15:43:38 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關asp.net 中怎么抓取網頁源代碼,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

/// <summary>方法一:比較推薦
        /// 用HttpWebRequest取得網頁源碼
        /// 對于帶BOM的網頁很有效,不管是什么編碼都能正確識別
        /// </summary>
        /// <param name="url">網頁地址" </param>
        /// <returns>返回網頁源文件</returns>
        public static string GetHtmlSource2(string url)
        {
            //處理內容
            string html = "";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Accept = "*/*"; //接受任意文件
            request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; // 模擬使用IE在瀏覽 
            request.AllowAutoRedirect = true;//是否允許302
            //request.CookieContainer = new CookieContainer();//cookie容器,
            request.Referer = url; //當前頁面的引用
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.Default);
            html = reader.ReadToEnd();
            stream.Close();
            return html;
        }
        //方法二:
        public static string GetHttpData2(string Url)
        {
            string sException = null;
            string sRslt = null;
            WebResponse oWebRps = null;
            WebRequest oWebRqst = WebRequest.Create(Url);
            oWebRqst.Timeout = 50000;
            try
            {
                oWebRps = oWebRqst.GetResponse();
            }
            catch (WebException e)
            {
                sException = e.Message.ToString();
            }
            catch (Exception e)
            {
                sException = e.ToString();
            }
            finally
            {
                if (oWebRps != null)
                {
                    StreamReader oStreamRd = new StreamReader(oWebRps.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                    sRslt = oStreamRd.ReadToEnd();
                    oStreamRd.Close();
                    oWebRps.Close();
                }
            }
            return sRslt;
        }
        /// <summary>方法三:
        /// 
        /// </summary>
        /// <param name="url">/要訪問的網站地址</param>
        /// <param name="charSets">目標網頁的編碼,如果傳入的是null或者"",那就自動分析網頁的編碼</param>
        /// <returns></returns>
        public static string getHtml(string url, params  string[] charSets)
        {
            try
            {
                string charSet = null;
                if (charSets.Length == 1)
                {
                    charSet = charSets[0];
                }
                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;
                if (charSet == null || charSet == "")
                    charSet = webCharSet;
                if (charSet != null && charSet != "" && Encoding.GetEncoding(charSet) != Encoding.Default)
                {
                    strWebData = Encoding.GetEncoding(charSet).GetString(myDataBuffer);
                }
                else
                {
                    strWebData = Encoding.GetEncoding("utf-8").GetString(myDataBuffer);
                }
                return strWebData;
            }
            catch (Exception e) { return ""; }
        }

以上就是asp.net 中怎么抓取網頁源代碼,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔县| 张家川| 潞城市| 左贡县| 泊头市| 交口县| 米脂县| 宝应县| 龙里县| 亳州市| 镇坪县| 博湖县| 陕西省| 新巴尔虎右旗| 广饶县| 西昌市| 车致| 资讯| 连州市| 阳东县| 惠东县| 池州市| 集安市| 务川| 仪陇县| 景洪市| 新宁县| 威远县| 珲春市| 伊金霍洛旗| 瓦房店市| 盐池县| 清丰县| 天祝| 如东县| 都兰县| 洛宁县| 潼关县| 且末县| 阳曲县| 新巴尔虎右旗|