当前位置: 首页 > news >正文

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

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; }



相关文章:

  • Linux设备驱动程序学习 高级字符驱动程序操作[阻塞型I/O和非阻塞I/O]【转】
  • 用百度推荐提升PV和收益的小方法
  • [C++]四种方式求解最大子序列求和问题
  • libserialport: cross-platform library for accessing serial ports
  • Linux USB驱动框架分析(2)【转】
  • 安卓android.support.design使用中的问题
  • swift锁屏播放,音乐进度更新,专辑,歌手名显示
  • srxboys 今日说 !
  • windows 下将目录映射成盘符
  • ios自定义控件,使UIScrollView自己处理输入时键盘遮挡控件
  • 算法学习笔记——动态规划法
  • js 自定义方法 实现停留几秒 sleep
  • Global Azure SQL Server Database异地复制配置介绍
  • 练习JavaScript实现过滤特殊字符
  • jQuery Mobile_页面事件
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【刷算法】求1+2+3+...+n
  • 2017届校招提前批面试回顾
  • AWS实战 - 利用IAM对S3做访问控制
  • es6
  • java 多线程基础, 我觉得还是有必要看看的
  • magento 货币换算
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Shell编程
  • VUE es6技巧写法(持续更新中~~~)
  • Wamp集成环境 添加PHP的新版本
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 第2章 网络文档
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 一道面试题引发的“血案”
  • 国内开源镜像站点
  • 湖北分布式智能数据采集方法有哪些?
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (1)常见O(n^2)排序算法解析
  • (4)logging(日志模块)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (二)换源+apt-get基础配置+搜狗拼音
  • (七)c52学习之旅-中断
  • (四) Graphivz 颜色选择
  • (转)c++ std::pair 与 std::make
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼) UML中文FAQ (OO) (UML)
  • . Flume面试题
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 依赖注入和配置系统
  • .net打印*三角形
  • @31省区市高考时间表来了,祝考试成功
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [.net]官方水晶报表的使用以演示下载