[转载]C#文章抓取(含源码下载)

[转载]文章抓取(含源码下载) - sharpCode - 博客园.

最近都左做一些资源采集的工作,比如采集新闻,flash,图片等,下面我们通过一个小例子,来详细的说明一下我采集资源的步骤,希望各位能提点建议,不胜感激。

下面就开始吧!我们这次要采集的是这个少儿英语动画故事  http://www.ebigear.com/reslist-92-1.html,虽然只有6页,但是已经对与这个例子来说已经足够了。

1.首先当然是要下载这个网页。
[csharp]
string seed = "http://www.ebigear.com/reslist-92-1.html";
HttpWebRequest wRequest=(HttpWebRequest)HttpWebRequest.Create(seed);
WebResponse wResponse = wRequest.GetResponse();
Stream stream = wResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(stream);
string html = streamReader.ReadToEnd();

[/csharp]
得到下面的字符串
[html]

少儿英语动画故事-英语听力-list-大耳朵英语 - 免费在线英语学习 口语练习 四级听力资料 在线翻译 网络课堂 英语社区

您所在的位置: 大耳朵首页 > 听力资料 > 在线视听资料 >...> 国外儿童英语 > 少儿英语动画故事列表

站内搜索:

少儿英语动画故事
  • The Seven Eve—Chinese Valentine’s DayMost people...
  • Everybody in love, go on put your hands up恋爱中的人,...
  • 国籍: 美国 出生地: 加州圣巴巴拉 出生日期: 1984年10月25日 身高:170c...
  • 转到第
    1 2 3 4 5 6 > >| 1/6
    浏览记录
    • 您没有浏览历史
    • 您没有浏览历史

    少儿英语动画故事

    高瞻远瞩
    放眼全球
    推荐资源
    最新社区精华帖子 更多>>
    经典学习方法 更多>>

    免责声明:本站只提供资源播放平台,如果站内部分资源侵犯您的权益,请您告知,站长会立即处理。
    Copyright © 2003-2011 大耳朵英语 京ICP备10010568号

    大耳朵在线聊天

    [/html]
    2. 我们来分析一下要抓取的文章的链接
    [html]
    国外英语动画故事-A Country Road
    国外英语动画故事-A Hot Air Balloon
    [/html]
    经过分析,可以得到 获取链接的正则表达式
    /res-92[^\"]+html

    得到了我们所需要的链接,如下图

    3.得到了所需要的链接,接下来我们就可以进行下一步了。
    [csharp]
    Regex rg1 = new Regex("/res-92[^\"]+html", RegexOptions.Compiled |RegexOptions.IgnoreCase);
    MatchCollection mc=rg1.Matches(html);
    foreach (Match a in mc)
    {
    /*在这里处理每一个链接*/
    string catchUrl = @"http://www.ebigear.com" + a.Value;
    wRequest = (HttpWebRequest)HttpWebRequest.Create(catchUrl);
    wResponse = wRequest.GetResponse();
    stream = wResponse.GetResponseStream();
    streamReader = new StreamReader(stream);
    html = streamReader.ReadToEnd(); //跟之前那样先获取该网页的源代码
    Regex rgN = new Regex("\n|\r|\t");
    Regex rgReplace = new Regex(""");
    Regex rgContent = new Regex("(?<=
    ).*?(?=

    )",RegexOptions.IgnoreCase|RegexOptions.Multiline);
    //上面是获取当前网页中文章的内容的正则。
    ShowBox.Text+= rgContent.Match(rgReplace.Replace( rgN.Replace(html,""),"\"")).Value+"\n\n\n\n\n"; //要先去掉\n\t\r,不然正则没效果
    }
    [/csharp]

    4.结果展示

    5.后期格式处理。

    这里就不处理了,把<br/> 替换一下就可以了。

    就到这里吧,谢谢,睡觉去了。

    源码下载