博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.net 使用正则和网络编程抓取网页数据(有用)
阅读量:6186 次
发布时间:2019-06-21

本文共 2870 字,大约阅读时间需要 9 分钟。

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

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

///         /// 抓取网页对应内容        ///         /// 採集地址        /// 開始字符        /// 结束字符        /// 
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; }

转载地址:http://ogada.baihongyu.com/

你可能感兴趣的文章
Linux查CC***
查看>>
JSP里的9大内置对象,背过,应聘笔试会用。
查看>>
取消单元格的点击事件
查看>>
SWF 文件不能本地访问 只有仅限于文件系统的 SWF 文件
查看>>
Bootstrap3 栅格系统-实例:响应列重置(Responsive column resets)
查看>>
(转载)理解C#对象生命周期
查看>>
详解cookie与session的区别,讲得最透彻的一篇文章
查看>>
如何下载scp、wget、inotify及如何偷包
查看>>
html标签必备
查看>>
[jsp学习笔记]jstl标签的使用
查看>>
ABBYY FineReader 12如何识别包含非常规符号的文本
查看>>
【Z】使用SQL Server的OPENROWSET函数
查看>>
Activiti流程变量
查看>>
Android--面试中遇到的问题总结(一)
查看>>
更改windows2003最大连接数的方法我们来增加连接数
查看>>
进程、线程和协程的理解
查看>>
【统计学】英文概念之Mean和Average的区别
查看>>
解决network is unreachable问题
查看>>
linux下判断文件和目录是否存在[总结]
查看>>
webpack+vue自学(4)
查看>>