C# 如何阅读&;爬网网址&;网站文件内容同步#
我正在开发一个小爬虫,它将只用于我们公司的网站。爬虫程序将获取一个url并对该url进行爬网,读取该url的内容,还提取该页面中的其他url并开始爬网这些url……同样的过程是读取文件内容,以及对其他url进行爬网并读取其内容 我想同时完成所有这些任务。1年多以前,我开发了一个多线程文件下载程序,可以同时下载文件C# 如何阅读&;爬网网址&;网站文件内容同步#,c#,C#,我正在开发一个小爬虫,它将只用于我们公司的网站。爬虫程序将获取一个url并对该url进行爬网,读取该url的内容,还提取该页面中的其他url并开始爬网这些url……同样的过程是读取文件内容,以及对其他url进行爬网并读取其内容 我想同时完成所有这些任务。1年多以前,我开发了一个多线程文件下载程序,可以同时下载文件 var list = new[] { "http://google.com", "http://yahoo.com", "http://stackove
var list = new[]
{
"http://google.com",
"http://yahoo.com",
"http://stackoverflow.com"
};
var tasks = Parallel.ForEach(list,
s =>
{
using (var client = new WebClient())
{
Console.WriteLine("starting to download {0}", s);
string result = client.DownloadString((string)s);
Console.WriteLine("finished downloading {0}", s);
}
});
下面是用于同时下载文件的位片段
var list = new[]
{
"http://google.com",
"http://yahoo.com",
"http://stackoverflow.com"
};
var tasks = Parallel.ForEach(list,
s =>
{
using (var client = new WebClient())
{
Console.WriteLine("starting to download {0}", s);
string result = client.DownloadString((string)s);
Console.WriteLine("finished downloading {0}", s);
}
});
如果有人能指导我如何编码以实现我的目标,那将是非常有帮助的。感谢您获得HTML
public string getHTML(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string html = sr.ReadToEnd();
sr.Close();
response.Close();
return html;
}
要解析代码,请使用如下解析器:对于简单的答案,您的问题非常广泛,您的代码片段甚至与之无关。请编辑此内容,否则它可能会被关闭。parallel.foreach可以同时运行多少个线程?我很抱歉,我无法正确解释我的问题。我想开发一个小型爬虫程序,当爬虫程序第一次开始解析任何url时,它将从内容中提取所有url,并将这些url添加到队列和中的另一部分同一程序将监视该队列。当一个新url被添加到队列中时,一个新线程将开始解析该url,并从该内容中提取所有url并添加到队列中。完成任何url内容的解析后,该url将从队列中删除。只要指导我的样本代码和想法如何开发这种程序。我不是在阅读网页内容。我的问题是,当我将从页面中提取url时,如何使用任务库递归地同时解析这些页面的内容?如果您有这个想法,我们将不胜感激。