<Angel_Of_Love/>
Гость
A
<Angel_Of_Love/>
Гость
Данная статья подойдет для тех людей, которые делают приложения и не могут обойти CloudFlare на сайтах. Для реализации данной задачи понадобится: Leaf-XNet(Вы должны нажать кнопку "Мне нравится", чтобы видеть эту ссылку) - Библиотека подобная XNet, но со своими фишками. Чтобы обойти 5-ти секундную защиту нужно обработать JavaScript на сайте и получить куки, которые работают некоторое время для определенного IP-адреса. Минусы: данный метод работает только при включенной Re-Captcha. Итак приступим к реализации: Идем в Nuget и скачиваем пакет Leaf-XNet(Вы должны нажать кнопку "Мне нравится", чтобы видеть эту ссылку). Дальше используем: Используем пакет:
Полный код:
Итак, что здесь происходит, сначала используем скачанные пакеты Leaf-XNet.
И уже инициализируем наш словарь(Cookies) для хранения куков и дальнейшего использования в XNet/Leaf-XNet/HttpWebRequest.
Дальше мы инициализируем новый экземпляр класса HttpRequest в переменную Request, а переменная ResponseCookies получает результат(В нашем случае куки) после выполнения работы переменной Request.
После из ответа(ResponseCookies) вытаскиваем куки в словарь(Cookies).
А после из словаря(Cookies) куда вам угодно.
Код:
using Leaf.xNet;
using Leaf.xNet.Services.Cloudflare;
Код:
Создаем и инициализируем новую переменную(Словарь) для хранения куков.
Dictionary<string, string> Cookies = new Dictionary<string, string>();
//Инициализируем новый экземпляр класса HttpRequest в переменную Request.
using (var Request = new HttpRequest())
{
try
{
//С помощью переменной Request выполняем переход на нужный сайт.
var ResponseCookies = Request.GetThroughCloudflare("Адрес сайта").Cookies;
//Если все без ошибочно, то CloudFlare обработан и теперь вытаскиваем куки.
foreach (Cookie _Cookie in ResponseCookies.GetCookies("Адрес сайта"))
{
MessageBox.Show(_Cookie.Name, _Cookie.Value);
Cookies.Add(_Cookie.Name, _Cookie.Value);
}
//Дальше перекидываете куки из словоря(Cookies) куда вам угодно, в обычный XNet или же HttpWebRequest.
}
catch
{
//Действия при ошибке.
}
finally
{
//Действия при окончание блока try.
Request?.Dispose();
}
}
И уже инициализируем наш словарь(Cookies) для хранения куков и дальнейшего использования в XNet/Leaf-XNet/HttpWebRequest.
Дальше мы инициализируем новый экземпляр класса HttpRequest в переменную Request, а переменная ResponseCookies получает результат(В нашем случае куки) после выполнения работы переменной Request.
После из ответа(ResponseCookies) вытаскиваем куки в словарь(Cookies).
А после из словаря(Cookies) куда вам угодно.