今天下午接到了一个大学时代的老师的电话,呵呵,平时都是我们联系他比较多,在学校的时候经常一起玩一起工作,算是亦师亦友的朋友吧。说要我帮忙给他下一些视频,简单的看了一下他提供的那个网站,视频的确是可以下载的,貌似也是一些很好玩的视频,就想是不是可以先用程序把页面中的视频的格式先提取出来,然后再使用迅雷或者其他的下载软件批量进行下载,远程抓取网页的代码如下:

Uri uri = new Uri("http://www.shanghartgallery.com/galleryarchive/videoWorks.htm");
WebRequest wreq = WebRequest.Create(uri);
HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse();
Stream s = wresp.GetResponseStream();
StreamReader objReader = new StreamReader(s, System.Text.Encoding.Default);
string HTML = objReader.ReadToEnd();
GetRegValue(HTML);//该函数为正则表达式或者地址的函数,详细的请见下面的代码
Response.End();

以下为正则表达式或者有效的地址的函数:

private static void GetRegValue(string RemoteStr)
{
        string pattern = @"id=(\d+)";
        Regex reg = new Regex(pattern, RegexOptions.Compiled);
        Match m = reg.Match(RemoteStr);
        while (m.Success)
        {
            string aaaa = m.Value;
            HttpContext.Current.Response.Write("<a href=http://www2.shanghartgallery.com/videos/" + aaaa.Replace("id=", "") + ".swf>" + aaaa.Replace("id=", "") + "<br/>");
            RemoteStr = RemoteStr.Replace(aaaa, "");
            m = reg.Match(RemoteStr);
        }
    }
}

所用到的类库:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;

在运行程序之后就会自动将有效的URL地址生成了,然后再使用迅雷批量下载,哈,完满的实现要求,貌似下载的速度有点慢,诶,谁叫这个网站是在国外的呢。