抓取一系列网页

时间:2012-01-27 10:54:36

标签: c# web-crawler

我是C#的新手,想知道抓取一系列网页的最佳方式。

如果我想获取这样的许多页面的来源: http://website.com/list/1 - http://website.com/list/44

如何让它在1-44范围内抓取每个页面?

谢谢:)

2 个答案:

答案 0 :(得分:1)

这是一个不错的简单方法,不是最通用的webcrawler,但会帮助您了解当前的规范

for(int i = 1; i < 45;i++){
string url = "http://website.com/list/"+i;
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
//do something with the result
}

您必须将此添加到您的使用语句

using System.Text;
using System.Net;
using System.IO;

亲切的问候

答案 1 :(得分:0)

尝试类似......

WebClient wc = new WebClient();
for(int i = 1; i < 45 ; i++)
{
    var pageContent = wc.DownloadString("http://website.com/list/" + i);
    // do your page content processing here
}

虽然显然你想要为此添加错误处理。


根据应用目标的不同,您可能需要在使用后调用WebClient上的Dispose()。在某些环境中,WebClient实现IDisposable,而在其他环境中则不实现。感谢@Paulo Moretti在评论中提到它。