此例子 是抓取视频网站
http://1qdisk.com/
的视频,嵌入的网页中 希望可以帮到大家
private void BindListInfo()
{
//要抓取的目标页面
string myuri = " http://1qdisk.com/ ";
//读取目标页面html源码
WebRequest webr = WebRequest.Create(myuri);
Stream rc = webr.GetResponse().GetResponseStream();
StreamReader read = new StreamReader(rc, System.Text.Encoding.GetEncoding("utf-8"));
string HtmlStr = read.ReadToEnd();
// 替换读取的html源码的内容 (链接,图片路径)
HtmlStr = HtmlStr.Replace("<img src=\"/upfile/", "<img onmousedown=\"document.oncontextmenu=stop\" src=\" http://1qdisk.com/upfile/ ");
HtmlStr = HtmlStr.Replace("<a href=\"/vod/view.html?idx=", "<a href=\"/Vod_ListInfoView.aspx?idx=");
HtmlStr = HtmlStr.Replace("/index_convert_", " http://1qdisk.com/index_convert _");
//截取页面中需要的html源码部分
bool IsMore = true;
//截取的开始部分标记,根据自己需求更改
HtmlStr = HtmlStr.Replace("<div style=\"width:963px;margin:0px auto;\" >", "☆");
IsMore = false;
string[] Arr = HtmlStr.Split('☆');
if (Arr.Length > 1)
{
//删除
开始标记之前的代码,并根据自己需求替换一部分代码
HtmlStr = "<div style=\"width:903px;margin:0px auto;border-bottom:1px solid #ececec;margin-bottom:5px;\" >" + Arr[1].Replace("963", "903");
//截取的结束部分的标记,根据自己需求更改
HtmlStr = HtmlStr.Replace("<!-- new update free -->", "▷");
Arr = HtmlStr.Split('▷');
//删除
结束标记之后的代码,并根据自己需求替换一部分代码
HtmlStr = Arr[0].Replace("973", "903");
//此处是利用正则表达式,过滤掉截取的到代码中的所有符合条件的代码
//<img[\\s\\S]{0,100} 表示以
<img开头以
>为结束,并且中间包含 的字符串
HtmlStr = RegReplace(HtmlStr, "<img[\\s\\S]{0,100}
}
else
{
HtmlStr = "没有截取到数据.";
}
//将截取到的 HtmlStr 放入页面的容器中
lit_Indexinfo.Text = HtmlStr;
read.Dispose();
rc.Dispose();
}
//过滤符合(正则表达)条件的字符
private string RegReplace(string content, string Reg)
{
string str = content;
str = Regex.Replace(str, @"" + Reg + "", "", RegexOptions.IgnoreCase);
return str;
}