Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Авторизация и парсинг сайта  [new]
Супер_Пав
Member

Откуда: Москва
Сообщений: 417
День добрый. Хочу сделать парсинг сайта, но сперва нужно залогиниться. Делаю следующее:
private static bool Test(NameValueCollection loginData)
{
    var Cookies = new CookieCollection();
    var web = new HtmlWeb {OverrideEncoding = Encoding.Default, UseCookies = true};
    web.PreRequest += (request) =>
    {
        if (request.Method == "POST")
        {
            var buff = Encoding.UTF8.GetBytes(request.Address.Query.ToCharArray());
            request.ContentLength = buff.Length;
            request.ContentType = "application/x-www-form-urlencoded";
            var reqStream = request.GetRequestStream();
            reqStream.Write(buff, 0, buff.Length);
        }
        request.CookieContainer.Add(Cookies);
        return true;
    };

    web.PostResponse += (request, response) =>
    {
        if (request.CookieContainer.Count > 0 || response.Cookies.Count > 0)
        {
            Cookies.Add(response.Cookies);
        }
    };

    var baseUrl = "https://www.sql.ru/forum/login.aspx";
    var query = string.Join("&",
        loginData.Cast<string>().Select(key => $"{key}={loginData[key]}"));
    var urlToHit = baseUrl + $"?{query}";
    var doc = web.Load(urlToHit, "POST");
    doc = web.Load("https://www.sql.ru/forum/dotnet");
    var isAuth = !doc.DocumentNode.InnerText.Contains("Добро пожаловать в форум, Guest");
    return isAuth;
}

После выполнения метода, вижу, что авторизация не прошла. Подскажите, пожалуйста, что не так?
HtmlWeb из HtmlAgilityPack. Данный сайт, как пример.
var loginData = new NameValueCollection
{
    { "login", "MY_LOGIN" },
    { "password", "MY_PASSWORD" }
};
11 ноя 21, 15:29    [22394676]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация и парсинг сайта  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6257
Было же уже: 22355910
15 ноя 21, 11:40    [22396093]     Ответить | Цитировать Сообщить модератору
 Re: Авторизация и парсинг сайта  [new]
Супер_Пав
Member

Откуда: Москва
Сообщений: 417
Сон Веры Павловны
Было же уже: 22355910

немного разные были задачи =) Там нужна была имитация действий пользователя, тут же авторизация и парсинг. Вопрос и там, и тут решился. Смог разобраться
15 ноя 21, 19:28    [22396378]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить