Нужно найти битые ссылки на портале.
Я скачиваю html страницы, нахожу на ней все ссылки и добавляю их в очередь на скачивание. В процессе выделяю битые\некорректные.
HttpWebResponse response;
StreamReader respStream;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link.ToString());
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/15.0";
request.Accept = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.AllowAutoRedirect = true;
request.Timeout = 10000;
response = (HttpWebResponse)request.GetResponse();
respStream = new StreamReader(response.GetResponseStream());
html = respStream.ReadToEnd();
response.Close();
respStream.Close();
}
catch (Exception ex)
{
System.Console.WriteLine("-------------\n" +
"Bad link: " + link + "\n" +
"From: " + link.Parent +
"\n" + ex.Message);
link.ErrorComments = ex.Message;
link.Parent.AddSon(link);
continue;
}
Вот код для скачивания.
Я распараллелил программу, но скорость глобально не изменилась. С 60 ссылок в минуту в однопотоке скорость выросла до 120. Возможно я не оптимально скачиваю станицы? Скорость интернета позволяет скачивать 10-20 страниц в секунду. При этом со временем скорость скачивания падает. Как ускорить процесс?