В чем проблема при скачивании веб страницы и как ее решить? Здравствуйте, пытаюсь спарсить информацию с HTML документа, вот адресс: https://youhack.ru/forums/51/ с помощью метода WebClient.DownloadString(); Вот мой код:WebClient webClient = new WebClient(); String response; response = webClient.DownloadString("https://youhack.ru/forums/51/"); document.Text = response; string pattern = @"data.previewUrl..threads.[0-9]+.preview..\w{0,70}\W{0,70}" + searchTextBox.Text + "\\w{0,70}\\W{0,70}"; Regex rgx = new Regex(pattern); int count = 0; foreach (Match match in rgx.Matches(response)) { count++; resultTextBox.Text += "youhack.ru/" + match.Value.ToString().Substring(17, 14) + Environment.NewLine; resultsMatched.Text = count.ToString(); } Мне же вместо веб страницы с данного адреса вылетает вот такая страница:var xmlhttp = new XMLHttpRequest();function eraseCookieFromAllPaths(name) { var pathBits = location.pathname.split("/");var pathCurrent = " path="; document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT;"; for (var i = 0; i Я не совсем понял, но мне кажется, что дело в куки файлах, подскажите, как быть, как обойти эту проблему?
Да, проблема скорее всего связана с использованием файлов cookie на сайте. Для того чтобы обойти эту проблему, вам необходимо установить заголовок User-Agent в запросе к веб-сайту.
Вот пример кода, как это можно сделать:
WebClient webClient = new WebClient(); webClient.Headers.Add("User-Agent: Other"); String response = webClient.DownloadString("https://youhack.ru/forums/51/"); //Ваш оставшийся код string pattern = @"data.previewUrl..threads.[0-9]+.preview..\w{0,70}\W{0,70}" + searchTextBox.Text + "\\w{0,70}\\W{0,70}"; Regex rgx = new Regex(pattern); int count = 0; foreach (Match match in rgx.Matches(response)) { count++; resultTextBox.Text += "youhack.ru/" + match.Value.ToString().Substring(17, 14) + Environment.NewLine; resultsMatched.Text = count.ToString(); }
Установка заголовка User-Agent поможет вам обойти проверку на автоматическое обращение к сайту. Попробуйте использовать этот код и проверьте, помогло ли это вам решить проблему. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.
Да, проблема скорее всего связана с использованием файлов cookie на сайте. Для того чтобы обойти эту проблему, вам необходимо установить заголовок User-Agent в запросе к веб-сайту.
Вот пример кода, как это можно сделать:
WebClient webClient = new WebClient();webClient.Headers.Add("User-Agent: Other");
String response = webClient.DownloadString("https://youhack.ru/forums/51/");
//Ваш оставшийся код
string pattern = @"data.previewUrl..threads.[0-9]+.preview..\w{0,70}\W{0,70}" + searchTextBox.Text + "\\w{0,70}\\W{0,70}";
Regex rgx = new Regex(pattern);
int count = 0;
foreach (Match match in rgx.Matches(response))
{
count++;
resultTextBox.Text += "youhack.ru/" + match.Value.ToString().Substring(17, 14) + Environment.NewLine;
resultsMatched.Text = count.ToString();
}
Установка заголовка User-Agent поможет вам обойти проверку на автоматическое обращение к сайту. Попробуйте использовать этот код и проверьте, помогло ли это вам решить проблему. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.