В чем проблема при скачивании веб страницы и как ее решить? Здравствуйте, пытаюсь спарсить информацию с 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 < pathBits.length; i++) {pathCurrent += ((pathCurrent.substr(-1) != "/") ? "/" : "") + pathBits[i];document.cookie = name + "=;
expires=Thu, 01-Jan-1970 00:00:01 GMT;"
+ pathCurrent + ";";}}
eraseCookieFromAllPaths("BHC");
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) { var a=xmlhttp.responseText;document.cookie="BHC="+a+";
path=/";
document.location.href="/forums/51/"; } };
xmlhttp.open("GET", "/banhammer/pid", true);xmlhttp.send();
Я не совсем понял, но мне кажется, что дело в куки файлах, подскажите, как быть, как обойти эту проблему?

21 Авг 2019 в 06:32
287 +2
0
Ответы
1

Да, проблема скорее всего связана с использованием файлов 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 поможет вам обойти проверку на автоматическое обращение к сайту. Попробуйте использовать этот код и проверьте, помогло ли это вам решить проблему. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир