C#编程之asp.net(C#)数据采集类

C# 上位机软件开发之数据采集 见信安好,我是忒可君。中秋之际,发表一篇小问题小感悟的文章,同庆中秋和国庆,中秋快乐,国庆快乐!快乐8+天假! 阅读详情
using System; 
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Web;
using MSXML2; 
System.Text.RegularExpressions;

namespace EC

{

    /// <summary>

    /// 远程文件抓取类

    /// </summary>

    public class GetRemoteObj

    {

 

        #region 构造与析构函数

        public GetRemoteObj()

        {

            //

            // TODO: 在此处添加构造函数逻辑

            //

        }

        ~GetRemoteObj()

        {

            Dispose();

        }

        #endregion

 

        #region IDisposable 成员

 

        public void Dispose()

        {

            GC.SuppressFinalize(this);

        }

 

        #endregion

 

        #region 取得文件后缀

        /// <summary>

        /// 取得文件后缀

        /// </summary>

        /// <param name="filename">文件名称</param>

        /// <returns></returns>

        public string GetFileExtends(string filename)

        {

            string ext = null;

            if (filename.IndexOf('.') > 0)

            {

                string[] fs = filename.Split('.');

                ext = fs[fs.Length - 1];

            }

            return ext;

        }

        #endregion

 

        #region 获取远程文件源代码

        /**********************************

         * 函数名称:GetRemoteHtmlCode

         * 功能说明:获取远程文件源代码

         * 参    数:Url:远程url

         * 调用示例:

         *          GetRemoteObj o = new GetRemoteObj();

         *          string url = @"http://www.baidu.com";

         *          string s = o.GetRemoteHtmlCode(url);

         *          Response.Write(s);

         *          o.Dispose();

         * ********************************/

        /// <summary>

        /// 获取远程文件源代码

        /// </summary>

        /// <param name="url">远程url</param>

        /// <returns></returns>

        public string GetRemoteHtmlCode(string Url)

        {

            string s = "";

            MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTP();

            _xmlhttp.open("GET", Url, false, null, null);

            _xmlhttp.send("");

            if (_xmlhttp.readyState == 4)

            {

                s = System.Text.Encoding.Default.GetString((byte[])_xmlhttp.responseBody);

            }

            return s;

        }

 

        #endregion

 

        #region 保存远程文件

        /**********************************

         * 函数名称:RemoteSave

         * 功能说明:保存远程文件

         * 参    数:Url:远程url;Path:保存到的路径

         * 调用示例:

         *          GetRemoteObj o = new GetRemoteObj();

         *          string s = "";

         *          string url = @"http://www.baidu.com/img/logo.gif";

         *          string path =Server.MapPath("Html/");

         *          s = o.RemoteSave(url,path);

         *          Response.Write(s);

         *          o.Dispose();          

         * ******************************/

        /// <summary>

        /// 保存远程文件

        /// </summary>

        /// <param name="Url">远程url</param>

        /// <param name="Path">保存到的路径</param>

        /// <returns></returns>

        public string RemoteSave(string Url, string Path)

        {

            Random ra = new Random();

            string StringFileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "." + GetFileExtends(Url);

            string StringFilePath = Path + StringFileName;

            MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTP();

            _xmlhttp.open("GET", Url, false, null, null);

            _xmlhttp.send("");

            if (_xmlhttp.readyState == 4)

            {

                if (System.IO.File.Exists(StringFilePath))

                    System.IO.File.Delete(StringFilePath);

                System.IO.FileStream fs = new System.IO.FileStream(StringFilePath, System.IO.FileMode.CreateNew);

                System.IO.BinaryWriter w = new System.IO.BinaryWriter(fs);

                w.Write((byte[])_xmlhttp.responseBody);

                w.Close();

                fs.Close();

            }

            else

                throw new Exception(_xmlhttp.statusText);

            return StringFileName;

        }

        #endregion

 

        #region 替换网页中的换行和引号

        /// <summary>

        /// 替换网页中的换行和引号

        /// </summary>

        /// <param name="HtmlCode">HTML源代码</param>

        /// <returns></returns>

        public string ReplaceEnter(string HtmlCode)

        {

            string s = "";

            if (HtmlCode == null || HtmlCode == "")

                s = "";

            else

                s = HtmlCode.Replace("\"", "");

            s = s.Replace("\r\n", "");

            return s;

        }

 

        #endregion

 

        #region 替换HTML标签

        /// <summary>

        /// 替换HTML标签

        /// </summary>

        /// <param name="HtmlCode">html源代码</param>

        /// <returns></returns>

        public string RemoveHTML(string HtmlCode)

        {

            string MatchVale = HtmlCode;

            foreach (Match s in Regex.Matches(HtmlCode, "<.+?>"))

            {

                MatchVale = MatchVale.Replace(s.Value, "");

            }

            return MatchVale;

        }

 

        #endregion

 

        #region 匹配页面的链接

        /// <summary>

        /// 获取页面的链接正则

        /// </summary>

        /// <param name="HtmlCode"></param>

        /// <returns></returns>

        public List<string> GetHref(string HtmlCode)

        {

            List<string> list = new List<string>();

            string Reg = @"(h|H)(r|R)(e|E)(f|F) *= *('|"")?((\w|\\|\/|\.|:|-|_)+)('|""| *|>)?";

            foreach (Match m in Regex.Matches(HtmlCode, Reg))

            {

                list.Add((m.Value).ToLower().Replace("href=", "").Trim());

            }

            return list;

        }

        #endregion

 

        #region 匹配页面的图片地址

        /// <summary>

        /// 匹配页面的图片地址

        /// </summary>

        /// <param name="HtmlCode"></param>

        /// <param name="imgHttp">要补充的http://路径信息</param>

        /// <returns></returns>

        public string GetImgSrc(string HtmlCode, string imgHttp)

        {

            string MatchVale = "";

            string Reg = @"<img.+?>";

            foreach (Match m in Regex.Matches(HtmlCode, Reg))

            {

                MatchVale += GetImg((m.Value).ToLower().Trim(), imgHttp) + "||";

            }

            return MatchVale;

        }

 

        /// <summary>

        /// 匹配<img src="" />中的图片路径实际链接

        /// </summary>

        /// <param name="ImgString"><img src="" />字符串</param>

        /// <returns></returns>

        public string GetImg(string ImgString, string imgHttp)

        {

            string MatchVale = "";

            string Reg = @"src=.+\.(bmp|jpg|gif|png|)";

            foreach (Match m in Regex.Matches(ImgString.ToLower(), Reg))

            {

                MatchVale += (m.Value).ToLower().Trim().Replace("src=", "");

            }

            return (imgHttp + MatchVale);

        }

 

        #endregion

 

        #region 获得指定Html代码中所有超级连接的标题和连接地址

        /// <summary>

        /// 获得指定Html代码中所有超级连接的标题和连接地址:测试有效 反回Dictionary   key-标题  value-地址

        /// </summary>

        /// <param name="HtmlCode">需要匹配出超级连接的HTML代码</param>

        /// <returns></returns>

        public Dictionary<string, string> GetCodeHref(string HtmlCode)

        {

            Dictionary<string, string> dic = new Dictionary<string, string>();

            //匹配指定HTML代码中所有的超级连接中的href 和超连接文字内容的正则 有时候需要根据实际情况做小调整如果标题中间有<B>文字</B>的话

            string regex = @"\<a.*href\s*=\s*(?:""(?<url>[^""]*)""|'(?<url>[^']*)'|(?<url>[^\>^\s]+)).*\>(?<title>[^\<^\>]*)\<[^\</a\>]*/a\>";

            Regex reg1 = new Regex(regex, RegexOptions.IgnoreCase);//创建正则表达式对象

            MatchCollection ms1 = reg1.Matches(HtmlCode);//根据正则表达式匹配出所有匹配项返匹配集合

            foreach (Match m1 in ms1)//迭代集合获得每个匹配项

            {

                dic.Add(m1.Groups["title"].Value, m1.Groups["url"].Value);

            }

            return dic;

        }

        #endregion

 

        #region 正则获得字符串中开始和结束字符串之间的值

        /// <summary>

        /// 正则获得字符串中开始和结束字符串之间的值

        /// </summary>

        /// <param name="str">字符串</param>

        /// <param name="s">开始</param>

        /// <param name="e">结束</param>

        /// <returns></returns>

        public string GetRegValue(string str, string s, string e)

        {

            Regex rg = new Regex("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);

            return rg.Match(str).Value;

        }

 

        /// <summary>

        /// 正则获得字符串中开始和结束字符串之间的值

        /// </summary>

        /// <param name="str">字符串</param>

        /// <param name="s">开始</param>

        /// <param name="e">结束</param>

        /// <returns></returns>

        public List<string> GetRegValueArr(string str, string s, string e)

        {

            Match m;

            List<string> list = new List<string>();

            Regex rg = new Regex("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);

            for (m = rg.Match(str); m.Success; m = m.NextMatch())

            {

                list.Add(m.Groups[0].Value);

            }

            return list;

        }

        #endregion

 

        #region 替换通过正则获取字符串所带的正则首尾匹配字符串

        public string RegReplace(string RegValue, string regStart, string regEnd)

        {

            string s = RegValue;

            if (RegValue != "" && RegValue != null)

            {

                if (regStart != "" && regStart != null)

                {

                    s = s.Replace(regStart, "");

                }

                if (regEnd != "" && regEnd != null)

                {

                    s = s.Replace(regEnd, "");

                }

            }

            return s;

        }

        #endregion

    }

}

 

 

ASP.NET 4入门与C#编程经典源码解析 简介:ASP.NET 4是一个用于开发Web应用程序的框架,是.NET Framework的组成部分,采用C#语言编写,适合初学者学习。本书由清华大学出版社出版,刘伟琴翻译,提供深入的理论讲解和实践案例。本文将深入探讨ASP.NET 4的关键概念,如架构、Web Forms、MVC模式、控件与事件、页面生命周期、状态管理、数据访问、部署配置、AJAX支持以及安全性,并通过C#示例代码加深理解。 阅读详情

相关推荐

.net数据采集源码

专门采集网站数据,比较球赛、彩票等网站的数据采集,轻松完成你想要的数据。

ASP.NET(C#)经典采集代码

   using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControl

柳岸花明 587

C# 数据采集系统 智能采集 数据分析 整套源码

C# 数据采集系统 智能采集 数据分析 整套源码

大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)

大数据项目实战 第一章 项目概述 文章目录大数据项目实战第一章 项目概述学习目标一、项目需求和目标二、预备知识三、项目架构设计及技术选取总结 学习目标 掌握项目需求和目标 了解项目架构设计和技术选型 了解项目环境和相关开发工具 理解项目开发流程 在人力资源管理领域,网络招聘近年来早已凭借其范围广、信息量大、时效性强、流程简单而效果显著等优势,成为企业招聘的核心方式。随着大数据渐渐融入人类社会生活的各个领域,如何使用大数据优化企业招聘管理,提升企业招聘有效性,是值得深入探讨的现实课题。文章通过一个招聘网站

weixin_52465547的博客 2万+

c#上位机数据采集源代码

实现10路串口数据的采集,显示,解析保存,并能够实时图表显示

基于OPC和.net的数据采集系统软件Demo

1. 基于.net开发, 适用于Windows系统, 是物联网、智能制造、信息化系统相关的数据采集软件; 397949992@qq.com 2. Demo版本基于开放的OPC进行数据采集, 具有实时监控、存储记录、数据传输、报表打印等功能; 3. 软件通用性强, 可灵活选择数据源, 进行公式校正, 设置曲线量程、颜色等; 4. 兼容已知确定协议的采集和传输, 包括但不限于串口通信如DCON、Modbus RTU, TCP/IP如异步Socket、ModbusTCP、S7, OPC, Web服务如WebService、WebAPI等, 传输协议格式包括数据流、ASCLL、XML、JSON、Modbus等; 5. 兼容西门子、GE等PLC, 以及研华等采集板卡; 6. 兼容MySQL、SQLServer、Oracle等主流数据库存储.

C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

C#工业物联网

weixin_52437323的博客 1842

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

C# .net6 开发数据采集软件(一)

后续介绍本次只做一些记录,便于查询。欢迎投稿和评论,一起交流。

曾经的我也很优秀,现在的我一无所有。 1020

Nordic nRF52832实战:手把手教你搭建智能手环BLE通信框架(附完整代码)

本文详细介绍了如何使用Nordic nRF52832芯片搭建智能手环的BLE通信框架,涵盖芯片优势、协议栈初始化、低功耗广播策略及健康数据服务实现。通过完整代码示例和架构设计,帮助开发者快速掌握蓝牙低功耗通信技术,适用于可穿戴设备开发。

weixin_29192141的博客 246

飞秒激光加工石英玻璃的COMSOL多物理场仿真研究

多物理场仿真是现代工程研发的重要工具,通过耦合电磁、热传导和流体力学等物理场,可以准确预测复杂工况下的材料行为。COMSOL Multiphysics作为主流仿真平台,其双温模型能精确描述飞秒激光加工中的电子-声子耦合过程。这种仿真技术可显著降低实验成本,在微纳加工领域尤为关键。针对石英玻璃这类光学材料,仿真能有效优化激光参数,实现亚微米级精度的冷加工。研究显示,结合移动网格技术和自定义材料状态函数,可以准确预测烧蚀形貌与热影响区分布,为光学器件和微流控芯片制造提供可靠工艺指导。

weixin_29290863的博客 240

C#、ASP、ASP.NET、.NET、ASP.NET CORE区别、ASP.NET Core其概念和特点、ASP.NET Core个人心得体会

ASP.NET Core是.NET平台上的新一代Web应用程序开发框架,它是ASP.NET的升级版本。与传统的ASP.NET相比,ASP.NET Core更加轻量级、高性能且跨平台。它采用了基于Razor的视图引擎和中间件管道模型,提供了更大的灵活性和可扩展性。

qq_62186948的博客 6025

一种基于改进YOLOv8并与ORB-SLAM3融合的动态环境密集点云同步定位与建图(SLAM)方法

文章提出了一种基于改进 YOLOv8 与 ORB-SLAM3 融合的动态环境稠密点云 SLAM 方法,通过引入GSConv 卷积模块和VoVGSCSP 特征融合模块优化 YOLOv8 的轻量性,结合实时目标检测与语义分割技术去除动态特征点,显著提升了动态场景下的位姿估计精度。

2401_87345388的博客 1940

asp asp.net .net c# vb之间的区别和关系

一、什么是.NET? .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb.net等等。JAVA和.NET不同的一点是java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和IOS苹果系统。 .Net全称.NET F...

qq_30021219的博客 4323

把个人化的 SQVI 报表变成可维护、可共享、可传输的 ABAP Query:从定位来源到转换落地的完整路线图

本文针对SAP系统中业务用户常用但难以维护的SQVI临时报表问题,提供了一套完整的解决方案。文章首先区分了SQVI(个人临时报表)和ABAP Query(团队可维护报表)的关键差异,重点介绍了如何通过函数模块RSAQ_DECODE_REPORT_NAME反查报表来源。对于SQVI报表,详细说明了定位创建人和转换为团队可维护的ABAP Query的具体步骤,包括Query Area切换、转换操作和后续维护方法。最后总结了常见问题的解决方案,如字段调整、口径固化和生成程序名反查等,为现场实施提供了可直接操作的完

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

2023,程序员的出路在哪里?

可是似乎从30岁开始这工资就没涨过,前面跳槽几次涨的薪水在30岁以后跳槽已经不管用了、定格了,这几年由于市场环境不景气,程序员竞争越来越激烈,36岁跟30拿的工资一模一样,不仅工资拿的一样,反而事情还越来越多了,这些都意味着什么?处理故障需要的通常不仅仅是写代码的能力,还需要对一个系统的全貌要有一定的掌握。虽然目前不少大型互联网企业都在进行结构性调整,但是从互联网行业发展的基本面来看,未来在产业互联网发展的过程中,IT行业和传统行业将会释放出大量的就业岗位,所以未来程序员的发展空间还是非常值得期待的。

AI天才研究院 20万+

C# ASP.NET程序与 Web services 编程介绍

C# 是微软开发的一种面向对象的编程语言,它融合了 C 和 C++ 的强大功能,同时具有简洁、类型安全等特性。C# 在.NET 框架中扮演着核心角色,能够用于开发各种类型的应用,包括桌面应用、Web 应用、移动应用和游戏等。例如在开发一个简单的控制台应用程序时,通过 C# 的语法结构可以轻松实现数据的输入输出、逻辑判断等功能。

zsnandzmn的博客 1505

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1669

.NET、C# 和ASP.NET 三者的关系和区别

一、什么是 .NET ? .NET是微软公司下的一个开发平台,在这个平台下可以用不同的语言进行开发,如 C#、 F#、 Visual Basic等语言来编写.NET应用程序。 JAVA和.NET不同的一点是java是跨平台的,不跨语言的。而.NET构建的应用程序,有些是跨平台的,有些则针对特定的OS或.NET实现。 .NET框架的组成分为两部分: CLR:公共语言运行时(Common Language Runtime),提供内在管理,代码安全性检测等功能。 FLC:.NET框架类库(.NET Frame

qq_30404223的博客 4991

MetaGPT核心模块:Data Interpreter 上手实战 - 数据分析和可视化(附运行过程详解)

上篇文章我们详细解读了 DataInterpreter 的实现原理(论文),本文将开始上手实操,开始写代码用上 DataInterpreter。从最简单的例子开始,先给大家看下其运行过程,看下DataInterpreter是如何自动拆解任务,完成任务的,帮助大家构建直观认识。

同学小张的博客 371

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ASP.NET与.NET Framework和C#的关系

你好,是我琉忆。 今天我们讲一讲ASP.NET与.NET Framework和C#的关系。 在开始介绍ASP.NET之前,我们需要先了解以下运行ASP.NET的开发平台.NET框架。如果你之前学过C#那么对.NET框架会有一定的了解。当你在编写ASP.NET代码时会发现ASP.NET的代码和C#相近甚至等同。那么你一定会有一些疑问。他们三者是什么关系呢?我们一起来看看。 一.NET Framework Microsoft.net是2000年6月22日微软向全世界推出的,全新的软件开发和服务平台,目的

琉忆编程库 4436

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

Blue 4512

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

.NET、C#和ASP.NET三才之间的区别

<br />经常有同学会在.NET、C#和ASP.NET这三者之间区别不清楚,到底它们之间有什么联系呢?在这里我给大家归纳如下: <br />      1、.NET是一个平台,一个抽象的平台的概念。 <br />           .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。 <br />           本人理解的.NET核心就是.NET Framwork。<br />           .NET Framework包括两个关键组成元素: <br />           

曾智的专栏 6万+

C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别。哦我的上帝啊!这可真糟糕

微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。 当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前的ASP.NET应用程序(主要是Web Forms)。然后,为了更加混淆事情,他们后来添加了“ASP.NET We...

菜鸟变凤凰 2450

ASP.NET、.NET和C#的区别和关系

ASP.NET、.NET和C#的区别和关系如下: 一、asp.net是一种用来快速创建动态Web网站的技术,不是语言,它使用C#(或者vb.net)为开发语言。C#是一种面向对象的编程语言;net只是一个框架,.net中所有的编程语言,比如c# vb.net等编写的程序必须在.netframework框架下运行。 .NET 分成两个方面:WinForm和WebForm,ASP.NET就是属于WebForm,也就是平时说的B/S模式的开发。而WinForm就是属于C/S模式。 Asp.NE...

又小雪的工作、学习、生活问题记录 4483
上一篇: TabControl控件和TabPage的使用
下一篇: C#结合数据库的数据采集器示例
csdner
博客等级 码龄26年 9粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值