码迷,mamicode.com
首页 > Web开发 > 详细

Asp.net 使用正则和网络编程抓取网页数据(有用)

时间:2015-12-18 22:40:18      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

Asp.net 使用正则和网络编程抓取网页数据(有用)

Asp.net 使用正则和网络编程抓取网页数据(有用)

        /// <summary>
        /// 抓取网页对应内容
        /// </summary>
        /// <param name="strUrl">採集地址</param>
        /// <param name="Begin">開始字符</param>
        /// <param name="End">结束字符</param>
        /// <returns></returns>
        private static String GetContent(String strUrl, String Begin, String End)
        {
            String result = String.Empty;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default))
            {
                result = reader.ReadToEnd();
                
                reader.Close();
                response.Close();
            }

            //抓取内容
            Match table = Regex.Match(result, "(?<=" + Begin + ")[\\s\\S]*?

(?

=" + End + ")", RegexOptions.IgnoreCase); result = NoHTML(table.Value); return result; } ///<summary> ///去除HTML标记 ///</summary> ///<param name="NoHTML">包含HTML的源代码 </param> ///<returns>已经去除后的文字</returns> private static string NoHTML(string Htmlstring) { //删除脚本 Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?

>.*?

</script>", "", RegexOptions.IgnoreCase); //删除HTML Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase); Htmlstring = Regex.Replace(Htmlstring, ">", ""); Htmlstring = Regex.Replace(Htmlstring, "<", ""); Htmlstring = Regex.Replace(Htmlstring, "\r\n", ""); Htmlstring = Htmlstring.Substring(Htmlstring.IndexOf("\n") + 1); if (Htmlstring.LastIndexOf("‘") >= 0) Htmlstring = Htmlstring.Substring(Htmlstring.LastIndexOf("‘") + 1); if (Htmlstring.IndexOf("class=‘tdbk‘") >= 0) Htmlstring = Htmlstring.Substring(Htmlstring.IndexOf("class=‘tdbk‘") + "class=‘tdbk‘".Length); return Htmlstring; }



Asp.net 使用正则和网络编程抓取网页数据(有用)

标签:

原文地址:http://www.cnblogs.com/hrhguanli/p/5058231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!