国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

ASP.NET抓取網頁內容

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

asp.net抓取網頁內容

一、ASP.NET 使用HttpWebRequest抓取網頁內容

這種方式抓取某些頁面會失敗

不過,有時候我們會發現,這個程序在抓取某些頁面時,是獲不到所需的內容的,有時候甚至返回404的錯誤提示頁,這是什么原因呢?

其實,很多人都忽略了一個問題,那就是服務器默認的瀏覽器問題。有的服務器默認的瀏覽器是手機瀏覽器,那么,當我抓取這個服務器下的網頁是,就相當于用手機瀏覽器來打開網頁,而如果要抓取的目標網頁沒有相應的手機網頁的話,就會返回意想不到的結果,有的返回404錯誤提示頁,有的返回403錯誤提示頁,有的甚至跳轉到其他網頁去了。

如何解決這個問題?

要解決這個問題,其實很簡單,我們只需要在程序里指定使用的瀏覽器的即可,即是設置UserAgent的參數值。

完整代碼:

C# 代碼 復制
        /// <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)"; //             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;        }

二、ASP.NET 使用 WebResponse 抓取網頁內容

C# 代碼 復制
        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;        }

三、ASP.NET 使用 WebClient 抓取網頁內容

C# 代碼 復制
        /// <param name="url">/要訪問的網站地址</param>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博野县| 丰宁| 交口县| 通海县| 涟源市| 南召县| 建德市| 双江| 长子县| 绍兴县| 略阳县| 呼和浩特市| 淅川县| 蓝田县| 瑞丽市| 方城县| 钦州市| 铜川市| 台江县| 玉环县| 江源县| 伊宁市| 灵台县| 资阳市| 垫江县| 清流县| 淮阳县| 台山市| 郸城县| 瓮安县| 汉阴县| 正定县| 云梦县| 呼伦贝尔市| 沿河| 马尔康县| 淮阳县| 伊宁县| 建德市| 大渡口区| 疏附县|