如何用C#实现下载整个网页!(包括其中的动画,声音,FLASH什么的!) 如何用C#实现下载整个网页!(包括其中的动画,声音,FLASH什么的!)类假IE的另存为功能! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能要自己读一篇HTML里的SRC,再取相应的文件 要分析取回的html页,取出其中的链接,将相对地址转换成绝对地址,下载文件,还要把html页中的绝对地址转换成本地磁盘上的下载回来的文件的相对地址我没仔细想,你自己把步骤什么的再完善一下吧主要命名空间是System.Net,用正则表达式可能会方便些,命名空间System.Text.RegularExpressions 前写日子 写了一些 你可以参考 参考 然后 类推就可以啦 public string GetPageSource(string url)//获取网页的html代码 { Uri uri=new Uri(url); HttpWebRequest hwReq=(HttpWebRequest)WebRequest.Create(uri); HttpWebResponse hwRes=(HttpWebResponse)hwReq.GetResponse(); hwReq.Method="Post"; hwReq.KeepAlive=false; StreamReader reader=new StreamReader(hwRes.GetResponseStream(),System.Text.Encoding.GetEncoding("GB2312")); return reader.ReadToEnd(); } public static ArrayList GetHyperLinks(string httpcode)//获取html代码中所有的连接 { ArrayList al = new ArrayList(); string strRegex = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"; Regex r = new Regex(strRegex,RegexOptions.IgnoreCase); MatchCollection m = r.Matches(httpcode); for(int i=0; i<=m.Count-1; i++) { bool rep = false; string strNew = m[i].ToString(); // 过滤重复的URL foreach(string str in al) { if(strNew==str) { rep =true; break; } } if(!rep) al.Add(strNew); } al.Sort(); return al; } 头痛!这正则表达式要是一下能写出来就好了!现在问题是SRC=",,,,,",背影图片地址这一类的地址得不到呀!头痛中! /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { HtmlToMht("http://www.163.net", "c:\\csdn.mht"); } public static void HtmlToMht(string src, string dst) { CDO.Message msg = new CDO.MessageClass(); CDO.Configuration c = new CDO.ConfigurationClass(); msg.Configuration = c; //msg. msg.CreateMHTMLBody(src, CDO.CdoMHTMLFlags.cdoSuppressAll, "domain\\username", "password"); ADODB.Stream stream = msg.GetStream(); stream.SaveToFile(dst, ADODB.SaveOptionsEnum.adSaveCreateOverWrite); //Console.WriteLine(msg.GetStream().ReadText(100)); }这代码我在2003下运行.为什么老说空引用呢???????头晕中!!!1 关于Rollback() 为什么嵌入式的内存就是大不了,CPU就是快不了呢/? 将单房间的聊天室改成可建房间的 难点问题 谁解决 200分全部归他 不够可以在加 哪位搞过.net web(c#)部署? 应用程序中客服端与服务器连接不上 Url重写,不知道session为什么就为null了 求助啊啊 !!大神们 小女子又有问题了! 请教installshiled下生成虚拟目录的问题 求文本编辑器源码 关于水晶报表用crystalreportviewer预览时的居中问题?
public string GetPageSource(string url)//获取网页的html代码
{
Uri uri=new Uri(url);
HttpWebRequest hwReq=(HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse hwRes=(HttpWebResponse)hwReq.GetResponse();
hwReq.Method="Post";
hwReq.KeepAlive=false;
StreamReader reader=new StreamReader(hwRes.GetResponseStream(),System.Text.Encoding.GetEncoding("GB2312"));
return reader.ReadToEnd();
}
public static ArrayList GetHyperLinks(string httpcode)//获取html代码中所有的连接
{
ArrayList al = new ArrayList();
string strRegex = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
Regex r = new Regex(strRegex,RegexOptions.IgnoreCase);
MatchCollection m = r.Matches(httpcode);
for(int i=0; i<=m.Count-1; i++)
{
bool rep = false;
string strNew = m[i].ToString();
// 过滤重复的URL
foreach(string str in al)
{
if(strNew==str)
{
rep =true;
break;
}
}
if(!rep) al.Add(strNew);
}
al.Sort();
return al;
}
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
HtmlToMht("http://www.163.net", "c:\\csdn.mht");
}
public static void HtmlToMht(string src, string dst)
{
CDO.Message msg = new CDO.MessageClass();
CDO.Configuration c = new CDO.ConfigurationClass();
msg.Configuration = c;
//msg.
msg.CreateMHTMLBody(src, CDO.CdoMHTMLFlags.cdoSuppressAll, "domain\\username", "password");
ADODB.Stream stream = msg.GetStream();
stream.SaveToFile(dst, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
//Console.WriteLine(msg.GetStream().ReadText(100));
}
这代码我在2003下运行.为什么老说空引用呢???????头晕中!!!1