获取远程网页的内容之一(downmoon原创)

汉字跨越三千年的生命力与数字时代适应性 文字作为文明载体,其演变规律始终遵循实用性与适应性的平衡。汉字作为现存最古老的文字系统,凭借形义结合的六书构造原理,实现了超方言的文化统一功能。在计算机处理方面,五笔输入法与Unicode支持证明了其技术兼容性,而视觉识别效率的先天优势使其在信息时代更具传播效力。从甲骨文识别AI到现代书法设计,汉字系统持续展现强大的文化承载力与技术适应性,这种活态传承为数字人文研究提供了独特样本。 阅读详情
本机直接上网时,请参看
获取远程网页的内容之一(downmoon原创)

本文仅针AD下代理上网的情况:
代码如下:
1、定义变量:

#region  定义变量
private    string strFireWallIP
        {
            get
            {
                return System.Configuration.ConfigurationSettings.AppSettings["strFireWallIP"];
            }
        }
        private    string strFireWallPort
        {
            get
            {
                return System.Configuration.ConfigurationSettings.AppSettings["strFireWallPort"];
            }
        }
        private    string strUID
        {
            get
            {
                return System.Configuration.ConfigurationSettings.AppSettings["strUID"];
            }
        }
        private    string strPWD
        {
            get
            {
                return System.Configuration.ConfigurationSettings.AppSettings["strPWD"];
            }
        }
        private    string strDomain
        {
            get
            {
                return System.Configuration.ConfigurationSettings.AppSettings["strDomain"];
            }
        }
        #endregion

方法:
获取指定远程网页内容

/// <summary>
        /// 获取指定远程网页内容
        /// </summary>
        /// <param name="strUrl">所要查找的远程网页地址</param>
        /// <returns></returns>
        //[WebMethod(Description = "获取指定远程网页内容。")]
        public string getPageContent(string strUrl)
        {
            string strResult        =    "";
            this.CurrentUrl    =     strUrl;
            if(this.CurrentUrl.ToLower().StartsWith("http://")==false)
                this.CurrentUrl = "http://"+this.CurrentUrl;
            try
            {
                contentBytes    = GetHtmlByte(CurrentUrl);
            
            }
            catch(Exception err)
            {
                strResult = "请求错误:" + err.Message;
            }
            if(contentBytes==null)
            {
                throw new Exception("没有获得返回值");
            }
            strResult        =    getStringFromByteArray(contentBytes,Encoding.UTF8);
            return strResult;
        }


获取指定远程网页元素字节数组::

#region 获取指定远程网页元素字节数组
        /// <summary>
        /// 获取指定远程网页元素字节数组
        /// </summary>
        /// <param name="strUrl">所要查找的远程网页地址</param>
        /// <returns></returns>
        private byte[] GetHtmlByte(string strUrl)
        {
            string strPara=(strUrl.IndexOf("?")>=0?strUrl.Substring(strUrl.IndexOf("?")+1):"");
            System.Text.Encoding encoding    =    new UTF8Encoding();
            byte[]  byte1                    =    encoding.GetBytes(strPara);
            byte[]    byteReturn                =    new byte[10000000];
            if(strUrl.Trim().ToLower().StartsWith("http://")==false)
            {
                strUrl = "http://"+strUrl;
            }
            HttpWebRequest myHttpWebRequest        =    (HttpWebRequest)WebRequest.Create(strUrl);
            myHttpWebRequest.AllowAutoRedirect    =    true;       
            myHttpWebRequest.KeepAlive            =    true;
            myHttpWebRequest.UserAgent            =    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)";
            System.Net .WebProxy  proxy = new WebProxy(strFireWallIP+":"+strFireWallPort,true);
            //proxy=(WebProxy)System.Net.GlobalProxySelection.Select;
            System.Net.NetworkCredential myCredential = new NetworkCredential(strUID,strPWD,strDomain);
            proxy.Credentials =myCredential;
            myHttpWebRequest.Proxy = proxy;


            HttpWebResponse myHttpWebResponse    =    (HttpWebResponse)myHttpWebRequest.GetResponse();
            byte[] bRead    =    new byte[1024];
            int lngCount    =    1;
            int totalLen    =    0;
            Stream recWeb    =    myHttpWebResponse.GetResponseStream();   
            lngCount        =    recWeb.Read(bRead,0,1024);
            while(lngCount>0)
            {
                Array.Copy(bRead,0,byteReturn,totalLen,lngCount);
                totalLen    +=    lngCount;
                lngCount    =    recWeb.Read(bRead,0,1024);
            }
            recWeb.Close();
            byte[] byteGets =    new byte[totalLen];
            Array.Copy(byteReturn,0,byteGets,0,totalLen);
            byteReturn        =    null;
            bRead            =    null;
        
            return byteGets;
        }
        #endregion


转换指定字节数组为字符串::

#region 转换指定字节数组为字符串
        /// <summary>
        /// 转换指定字节数组为字符串
        /// </summary>
        /// <param name="ByteGet">字节数组Byte[]</param>
        /// <param name="myEncoding">编码方式</param>
        /// <returns></returns>
        private static string getStringFromByteArray(Byte[] ByteGet,Encoding myEncoding)
        {
            int i,lngCount;
            StringBuilder aTemp = new StringBuilder(10000);
            lngCount = ByteGet.Length;
            for(i = 0;i<lngCount;i+= 10000)
            {
                aTemp.Append(myEncoding.GetString(ByteGet,i,(lngCount>=i+10000?10000:lngCount - i)));
            }
            if(i<=lngCount)
            {
                aTemp.Append(myEncoding.GetString(ByteGet,i,(lngCount - i)));
            }
            return aTemp.ToString();
        }

        #endregion



借用这个,写了个抽取中国天气网预报的服务!很爽!
ThingsBoard PE专业版解决方案技术文档——温度&湿度 温湿度解决方案 阅读详情

相关推荐

MOSFET高频响应实战:如何用LTspice仿真内部电容效应(附模型文件)

本文深入解析MOSFET高频响应中的内部电容效应,通过LTspice仿真工具详细展示如何提取模型参数并优化高频特性。从栅极相关电容到结电容的物理本质,再到实战案例中的开关损耗分析和频率响应扫描,提供全面的设计优化方法,帮助工程师有效应对高速开关电路中的电容挑战。

weixin_33725722的博客 390

实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试

不久以前,developerWorks 的作者 Andrew Glover 撰写了一篇介绍 Groovy 的文章,该文章是 alt.lang.jre 系列的一部分,而 Groovy 是一个新提议的用于 Java 平台的标准语言。读者对这篇文章的反应非常热烈,所以我们决定开办这个专栏,提供使用这项热门新技术的实用指导。本文是第一期,将介绍使用 Groovy 和 JUnit 对 Java 代码...

justJavaC的专栏 546

保姆级教程:在MMSegmentation框架下复现HRNetV2+OCR语义分割(附完整代码与调试技巧)

本文提供了一份详细的MMSegmentation框架下HRNetV2+OCR语义分割的复现教程,包含完整代码与调试技巧。通过解析HRNetV2的多尺度特征融合和OCR模块的注意力计算,帮助开发者快速实现这一经典语义分割方案,并解决实际工程中的常见问题。

weixin_42527464的博客 359

javascript事件查询综合

近日继续研究js javascript事件查询综合 click() 对象.click() 使对象被点击。closed 对象.closed 对象窗口是否已关闭true/falseclearTimeout(对象) 清除已设置的setTimeout对象clearInterval(对象) 清除已设置的setInterval对象confirm("提示信息") 弹出确认框,确定返回true取消返回fa...

weixin_30767921的博客 418

STM32移植LVGL(LittleVGL)

**STM32移植LVGL(LittleVGL)**

qq_53000374的博客 1万+

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级(详解)

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级

qq_36075612的博客 1万+

获取远程网页内容

php$curDomain = $_SERVER[HTTP_HOST];$strHTML = file_get_contents(http://www.gdomain.cn/DomainParking.asp?gDomName=.$curDomain);echo $strHTML?>

ξσ Dicky's Blog σξ 1021

rv1126 SDK编译【2020-0912版本SDK包】

rv1126 sdk 编译

学习记录 1万+

获取远程html插入到本地的网页里面(java+react实现)

需求: 通过编辑器生成的html被上传到阿里云的服务器,但是这个html 需要嵌入到另外的一个网页里面。 环境 前端: react 后端: Java Java代码@RequestMapping(value = "/getHtml", method = RequestMethod.POST) @UnNeedAdminId @Unauthorize public Object getHtml(@Requ

canglingyue的专栏 3951

VSCode配置ClangFormat:让C++大括号乖乖不换行(附常见样式对比)

本文详细介绍了如何在VSCode中配置ClangFormat,实现C++代码大括号不换行的格式化风格。通过对比Attach、Allman等主流大括号样式,并提供从快速设置到项目级配置的完整指南,帮助开发者打造统一、高效的代码格式化工作流,提升团队协作效率。

weixin_28835551的博客 215

如何使用 Conda 安装 Qiskit(详细教程)

本文介绍了使用conda安装Qiskit量子计算工具包的完整流程。首先创建Python 3.10的conda虚拟环境(qiskit_env),然后安装Qiskit核心包及可视化组件(注意Mac用户的安装命令差异)。接着注册IPython内核并测试环境,通过量子电路创建与可视化演示验证安装成功。该教程为量子计算开发提供了简洁的环境配置指南,适合研究者和开发者快速搭建Qiskit开发环境。

猿小白的博客 565

获取远程网页的内容之二(downmoon原创)

本机直接上网时,请参看 获取远程网页的内容之一(downmoon原创) 本文仅针AD下代理上网的情况: 代码如下: 1、定义变量: 定义变量#region 定义变量 privatestringstrFireWallIP ...{ get ...

dfdfadsf3443的博客 170

功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发

本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。

initiallizer的博客 920

在webForm中WebRequest/WebClient/WebBrowser获取远程页面源码的三种方式(downmoon)

一个小需求,获取远程页面的源码,主要用于抓数据。原来用的好好的,最近突然不能获取页面源码了,但是仍然可以用浏览器正常浏览。(文后附源码下载。^_^)  经过分析,原来用的代码如下:StreamReader sreader = null ; string result = string .Empty; try

邀月周记 7045

计算机控制技术及应用

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

在webForm中WebRequest\WebClient\WebBrowser获取远程页面源码的三种方式(downmoon)

  一个小需求,获取远程页面的源码,主要用于抓数据。原来用的好好的,最近突然不能获取页面源码了,但是仍然可以用浏览器正常浏览。(文后附源码下载。^_^)   经过分析,原来用的代码如下: Code StreamReader sreader = null;             string result = string.Empty;             try         ...

weixin_33895695的博客 151

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

以一种"廉价"的方式获取页面的标题(By downmoon)

有园子里的朋友问到: “我需要得到一个web page的title,因为这个title一般都比较靠前,只要取得html 的前面少量内容就可以了。因为要取得很多个页面的title,如果下载整个html code, 肯定比较浪费时间。.net好像没有现成的类可以干这件事情(取得部分html) ,我应该如何去实现?” 一种比较"廉价"(即较小成本条件下)的解决思路: 第一步:取出含有页面...

dfdfadsf3443的博客 114

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 李开复给大学生支招:如何加盟Google中国
下一篇: Search.aspx
willmove
博客等级 码龄22年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值