获取远程网页的内容之二(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

借用这个,写了个抽取中国天气网预报的服务!很爽!

(0)

相关推荐

  • asp.net中获取远程网页的内容之一(downmoon原创)

    获取远程网页的内容之一(downmoon原创) 一.本机直接上网时: 获取指定远程网页内容#region 获取指定远程网页内容 复制代码 代码如下: /**//// <summary>          /// 获取指定远程网页内容          /// </summary>          /// <param name="strUrl">所要查找的远程网页地址</param>          /// <param nam

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

    获取远程网页的内容之一(downmoon原创) 一.本机直接上网时: 获取指定远程网页内容#region 获取指定远程网页内容      复制代码 代码如下: /**//// <summary>          /// 获取指定远程网页内容          /// </summary>          /// <param name="strUrl">所要查找的远程网页地址</param>          /// <para

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

    本文仅针AD下代理上网的情况: 代码如下: 1.定义变量: 定义变量#region  定义变量  复制代码 代码如下: private    string strFireWallIP          ...{              get              ...{                  return System.Configuration.ConfigurationSettings.AppSettings["strFireWallIP"];        

  • asp.net下获取远程网页的内容之二(downmoon原创)

    本文仅针AD下代理上网的情况: 代码如下: 1.定义变量:  定义变量#region  定义变量 复制代码 代码如下: private    string strFireWallIP          ...{              get              ...{                  return System.Configuration.ConfigurationSettings.AppSettings["strFireWallIP"];        

  • asp获取远程网页的指定内容的实现代码

    代码如下: 复制代码 代码如下: <% '用ASP获取远程目标网页指定内容,代码由广州网站建设http://www.jb51.net提供 On Error Resume Next Server.ScriptTimeOut=9999999 Function getHTTPPage(Path) t = GetBody(Path) getHTTPPage=BytesToBstr(t,"GB2312") End function Function Newstring(wstr,strng

  • php获取远程文件的内容和大小

    本文实例总结了php获取远程文件的内容和大小的方法.分享给大家供大家参考.具体如下: 1.获取远程文件内容的方法 2.获取远程文件大小的方法 以上就是php获取远程文件的内容和大小函数代码,希望对大家的学习有所帮助.

  • 解析php通过cookies获取远程网页的指定代码

    复制代码 代码如下: function Steal($url, $post_data = ""){//$header[] = "Accept: text/vnd.wap.wml,*.*";   $user_agent = "Mozilla/4.0";  $follow_loc = 1;  $cookie_file ="./tmp/cook.txt";  $ch = @curl_init();  @curl_setopt($ch

  • php获取远程文件内容的函数

    一个简单的php获取远程文件内容的函数代码,兼容性强.直接调用就可以轻松获取远程文件的内容,使用这个函数也可获取图片.代码如下: /** * 读远程内容 * @return string */ function get_url_content($url){ if(function_exists("curl_init")){ $ch = curl_init(); $timeout = 30; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt

  • PHP 获取远程文件内容的函数代码

    如下函数: 复制代码 代码如下: <? /** 获取远程文件内容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists('file_get_contents')) { $file_content = @file_get_contents($url); } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ $i

  • 一文教会你用Python获取网页指定内容

    目录 前言 1.抓取网页源代码 2.抓取一个网页源代码中的某标签内容 3.抓取多个网页子标签的内容 总结 前言 Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能在我们开始之前,我们需要安装一些环境依赖包,打开命令行 确保电脑中具有python和pip,如果没有的话则需要自行进行安装 之后我们可使用pip安装必备模块 requests pip install requests requests是python

随机推荐