Загрузка...

Парсер на шарпе как сделать?

Тема в разделе C# создана пользователем Векс 27 авг 2021. 296 просмотров

  1. Векс
    Векс Автор темы 27 авг 2021 Заблокирован(а) 1200 2 июл 2019
    Типо надо сделать допустим получение баланса со страницы по кукам сделать
    мне типо посылать запрос на страницу по типу zelenka.guru/balance с куком в заголовке, а потом регуляркой искать код элемента с баликом в ответе?
     
  2. wDude
    wDude 27 авг 2021 Боюсь быть не там и не тем. 3667 14 авг 2017
    Логика:
    1) Посылаешь запрос на главную страницу лолза с куками для входа в акк (zelenka.guru)
    2) Получаешь в качестве ответа HTML документ.
    3) Используешь одну из библиотек для парсинга, AngleSharp/HTMLAgilityPack
    4) Парсишь то что тебе нужно в полученном ранее HTML документе.
    Как работать с библиотеками найдёшь в гугле.

    Тебе нужно найти элемент с классом "balanceValue" и получить его innerText или что-то типа.
    [IMG]
     
  3. throwyourfears
    throwyourfears 27 авг 2021 Заблокирован(а) 386 8 апр 2021
    Векс,
    C#
    using System;
    using Leaf.xNet;

    namespace LZTPayment
    {
    class Program
    {
    static void Main(string[] args)
    {

    using (var httpRequest = new HttpRequest())
    {

    httpRequest.UserAgent = Http.ChromeUserAgent();
    httpRequest.KeepAlive = true;
    httpRequest.AddHeader("Cookie", "Cookie из запроса");

    HttpResponse httpResponse = httpRequest.Get("URI");
    string response = httpResponse.ToString();

    Console.WriteLine(response);
    Console.ReadLine();

    }

    }
    }
    }
    После чего через AnglSharp загружаем переменную response и парсим, скоро добавлю UPD с AngleSharp
    --- Сообщение объединено с предыдущим 27 авг 2021
    Полный код:
    C#
    using System;
    using Leaf.xNet;
    using AngleSharp;
    using AngleSharp.Html.Parser;

    namespace LZTPayment
    {
    class Program
    {
    static void Main(string[] args)
    {

    using (var httpRequest = new HttpRequest())
    {

    httpRequest.UserAgent = Http.ChromeUserAgent();
    httpRequest.KeepAlive = true;
    httpRequest.AddHeader("Cookie", "Cookie из Header");

    HttpResponse httpResponse = httpRequest.Get("URI");
    string response = httpResponse.ToString();

    HtmlParser parser = new HtmlParser();
    var document = parser.ParseDocument(response);

    var elements = document.GetElementsByClassName("titleAction");

    for (var i = 0; i < elements.Length; i++)
    {
    Console.WriteLine(elements[i].TextContent.Replace("\n", string.Empty).Trim());
    }

    Console.ReadLine();
    }

    }
    }
    }
    Вывод:
    [IMG]
     
    1. throwyourfears
      Если меня не подводит память, то cookie из header живут 10 минут
      Лучше уже подгружать мейн куки
Загрузка...
Top