Увеличить cкорость парсера
Как можно увеличить скорость парсинга страниц указанные в richtextbox. У меня особо мало опыта владения C# и знаю что в коде есть костыли. Не ругайте сильно :) В коде много чего лишнего, чуть позже уберу. Пока хочу разобраться, как увеличить скорость парсинга. Parallel.ForEach особо не помог в моей ситуации. Подумывал о асинхронности, но не понимаю как это сделать.
private void ThreadMain(ParallelOptions po)
{
try
{
string[] sptext = searchText.Split();
var web = new HtmlAgilityPack.HtmlWeb();
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
Parallel.ForEach(sptext, po, (sites, state) =>
{
if (po.CancellationToken.IsCancellationRequested)
{
state.Stop();
}
try
{
string url = $"{sites}";
htmlDoc.LoadHtml(web.Load(url).Text);
content = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='']").InnerText;
richTextBox2.Invoke((MethodInvoker)delegate
{
richTextBox2.Text += ""; //content
richTextBox3.Text += $" {sites}" + "\n";
sp = ++sp;
});
}
catch (Exception ex1)
{
richTextBox2.Invoke((MethodInvoker)delegate
{
try
{
content = htmlDoc.DocumentNode.SelectSingleNode("//form[@id='captcha-form']").InnerText;
state.Stop(); //Если вылезла капча
}
catch (Exception ex2)
{
richTextBox2.Text += "0" + "\n";
richTextBox3.Text += $" {sites}" + "\n";
sp = ++sp;
}
});
}
});
} catch (Exception ex3)
{
MessageBox.Show("", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}