首页 | 源码下载 | 编程控件 | 书籍教程 | 应用方案 | 设计素材 | 项目交易 | 开发文档 | 商业源码 | 我的帐号
登陆我的帐号
帐 号:
密 码:
我还不是会员,需要注册!

截止2004年12月16日
本站源码总量(商业源码除外)RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,会员源码为 3,082,238 KB
C/C++ 129,555 KB
Delphi 1,258,381 KB
Java 120,937 KB
.Net 36,886 KB
PowerBuilder 954,525 KB
Visual Basic 923,454 KB
ASP 259,795 KB
JSP 4,987 KB
其他 94,723 KB

本站是中国频道、中资源、时代互联顶级代理:注册国际域名70元,国内域名130元,各类ASP、PHP、JSP空间8折优惠!
本站承担各类网站制作开发及方案策划,项目经验丰富,欢迎洽谈!

网站动态
关于下载速度慢的问题解答
想免费下载源码吗?
还有众多资源恭候大家免费…
道歉!
关于资源更新的说明
关于下载错误的原因!
源码资源网新版网站投入运…

当前位置:源码资源网首页 > 开发文档首页 > .Net >从Internet上抓取指定URL的源码的方案(C#)

从Internet上抓取指定URL的源码的方案(C#)
人气:10 文字大小:     作者:

引言:
  在做无线项目的时候,与通讯公司的数据通讯有一部分是通过XML交互的,所以必须要动态抓取通讯公司提供的固定的Internet上的数据,便研究了一下如何抓取固定url上的数据,现与大家分享一下。
  类名GetPageCode,有一个方法GetSource,通过属性传递参数,入参控制的是要取得URL的地址,代理服务器的设置及输出方式的控制,这里大家可以再扩展自己的需要,我这里只提供了两种方式,一种是直接写到本地的某个文件中,另外一种就是返回字符串的。类里已经作了比较详细的注释,我想大家很容易就看明白了,如果实在不明白,那就msn上问吧,MSN:[email protected]


调用方式:
#region 测试获取远程网页
GetPageCode gpc = new GetPageCode );
gpc.Url="http://ppcode.com";
gpc.ProxyState=1;//使用代理服务器,0为不使用,设置为1后下面的代理设置才起作用
gpc.ProxyAddress="http://proxyName.com";//代理服务器地址
gpc.ProxyPort="80";//代理服务器的端口
gpc.ProxyAccount="proxy";//代理服务器账号
gpc.ProxyPassword="password";//代理服务器密码
gpc.ProxyDomain="bqc";//代理服务器域
gpc.OutFilePath=filePath;//设置输出文件路径的地方,如果不设置,则返回字符串
gpc.GetSource );//处理
string tempErr=gpc.NoteMessage;//如果出错,这里会提示
string tempCode=gpc.OutString;//返回的字符串
#endregion
类代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Net;
using System.Text;
using System.Web;



namespace Test.Com
{
/// <summary>
/// 功能:取得Internet上的URL页的源码
/// 创建:2004-03-22
/// 作者:Rexsp MSN:[email protected]
/// </summary>
public class GetPageCode
{
#region 私有变量
/// <summary>
/// 网页URL地址
/// </summary>
private string url=null;
/// <summary>
/// 是否使用代码服务器:0 不使用 1 使用代理服务器
/// </summary>
private int proxyState=0;
/// <summary>
/// 代理服务器地址
/// </summary>
private string proxyAddress=null;
/// <summary>
/// 代理服务器端口
/// </summary>
private string proxyPort=null;
/// <summary>
/// 代理服务器用户名
/// </summary>
private string proxyAccount=null;
/// <summary>
/// 代理服务器密码
/// </summary>
private string proxyPassword=null;
/// <summary>
/// 代理服务器域
/// </summary>
private string proxyDomain=null;
/// <summary>
/// 输出文件路径
/// </summary>
private string outFilePath=null;
/// <summary>
/// 输出的字符串
/// </summary>
private string outString=null;
/// <summary>
/// 提示信息
/// </summary>
private string noteMessage;


#endregion


#region 公共属性
/// <summary>
/// 欲读取的URL地址
/// </summary>
public string Url
{
get{return url;}
set{url=value;}
}
/// <summary>
/// 是否使用代理服务器标志
/// </summary>
public int ProxyState
{
get{return proxyState;}
set{proxyState=value;}
}
/// <summary>
/// 代理服务器地址
/// </summary>
public string ProxyAddress
{
get{return proxyAddress;}
set{proxyAddress=value;}
}
/// <summary>
/// 代理服务器端口
/// </summary>
public string ProxyPort
{
get{return proxyPort;}
set{proxyPort=value;}
}
/// <summary>
/// 代理服务器账号
/// </summary>
public string ProxyAccount
{
get{return proxyAccount;}
set{proxyAccount=value;}
}
/// <summary>
/// 代理服务器密码
/// </summary>
public string ProxyPassword
{
get{return proxyPassword;}
set{proxyPassword=value;}
}
/// <summary>
/// 代理服务器域
/// </summary>
public string ProxyDomain
{
get{return proxyDomain;}
set{proxyDomain=value;}
}
/// <summary>
/// 输出文件路径
/// </summary>
public string OutFilePath
{
get{return outFilePath;}
set{outFilePath=value;}
}
/// <summary>
/// 返回的字符串
/// </summary>
public string OutString
{
get{return outString;}

}
/// <summary>
/// 返回提示信息
/// </summary>
public string NoteMessage
{
get{return noteMessage;}

}

#endregion

#region 构造函数
public GetPageCode )
{
}
#endregion


#region 公共方法
/// <summary>
/// 读取指定URL地址,存到指定文件中
/// </summary>
public void GetSource )
{
WebRequest request = WebRequest.Create this.url);
//使用代理服务器的处理
if this.proxyState==1)
{
//默认读取80端口的数据
if this.proxyPort==null)
this.ProxyPort="80";


WebProxy myProxy=new WebProxy );
myProxy =  WebProxy)request.Proxy;
myProxy.Address = new Uri this.ProxyAddress+":"+this.ProxyPort);
myProxy.Credentials = new NetworkCredential this.proxyAccount, this.proxyPassword, this.ProxyDomain);
request.Proxy = myProxy;
}
try

{
//请求服务
WebResponse response = request.GetResponse );
//返回信息
Stream resStream = response.GetResponseStream );
StreamReader sr = new StreamReader resStream, System.Text.Encoding.Default);
string tempCode= sr.ReadToEnd );
resStream.Close );
sr.Close );


//如果输出文件路径为空,便将得到的内容赋给OutString属性
if this.outFilePath==null)
{
this.outString=tempCode;
}
else
{


FileInfo fi = new FileInfo this.outFilePath);
//如果存在文件则先干掉
if fi.Exists)
fi.Delete );

StreamWriter sw = new StreamWriter this.outFilePath,true,Encoding.Default);
sw.Write tempCode);
sw.Flush );
sw.Close );
}
}
catch
{
this.noteMessage="出错了,请检查网络是否连通;";
}


}
#endregion



 

文章出处:   发表时间:2004-11-22 23:03:35

1条数据记录,分1页显示 上一页 < [1] > 下一页
相关文章  
[源码下载] · comicq源代码
[书籍教程] · VC++ 6.0数据库系统开发实例导航
[书籍教程] · Delphi 7数据库编程学习捷径
[书籍教程] · Delphi百例精解
[书籍教程] · DELPHI综合开发文档

相关评论  
 当前没有评论!
请登陆后再来发表评论!
当前位置:源码资源网首页 > 开发文档首页 > 从Internet上抓取指定URL的源码的方案(C#)
会员升级 | 广告服务 | 网站开发 | 联系我们 | 网站动态 | 客户反馈

CodeRes.com 保留所有权利 2004
本站所有资源仅供学习参考,版权归原作者所有,如侵犯了您的权益请与我们联系