Может ли html код который приходит при запросе менять формат?

Ссылка скопирована
1 ответ

Я вообще не разбираюсь в парсинге, я написал код который по идее получает весь html код с страницы по url, и в нем я хочу найти содержимое тега a с определенным классом.

using System.Net; using System.Text.RegularExpressions;  WebClient client = new WebClient(); string html = client.DownloadString("https://www.starbucks.com/menu");  Regex regex = new Regex("<a.*?class="block linkOverlay__primary tile___1wb3i".*?>.*?</a>", RegexOptions.IgnoreCase); MatchCollection matches = regex.Matches(html);  foreach (Match match in matches) {     Console.WriteLine(match.Value); }

using System.Net; using System.Text.RegularExpressions; WebClient client = new WebClient(); string html = client.DownloadString("https://www.starbucks.com/menu"); Regex regex = new Regex("<a.*?class="block linkOverlay__primary tile___1wb3i".*?>.*?</a>", RegexOptions.IgnoreCase); MatchCollection matches = regex.Matches(html); foreach (Match match in matches) { Console.WriteLine(match.Value); }

Дополнительно:

Может быть такое, что сам дом потом через js меняется, и вы там ни чего не найдёте, посмотрите что забирает в html

  • Дмитрий, Наверное так и есть, я просто для проверки скопировал то что приходит в respone и там даже тега а нету. Но из за скудных знаний в парсинге я вообще не понимаю что я должен сделать
  • Дмитрий, нужно пользоваться каким-то headless браузером с помощью него получать html страницы и рендерить ее, а уже потом в рендере искать элементы
  • Согласен с Дмитрий. Веб-страницы используют JS для построения страниц года так с 2015. Изначально выплевывается минимальный html, который потом модифицируется/дополняется через JS. Как подсказал Константин Б., надо попробовать какой-нибудь Selenium. Однако держите в уме, что сайт, в свою очередь, может делать проверки на заголовок user-agent, который, возможно, придется изменять.
  • Ответы:

    я вообще не понимаю что я должен сделать

    1. скачать страницу через curl или wget
    2. открыть в текстовом редакторе
    3. проверить, есть ли там интересующая вас информация.

    Если есть - можно продолжить написать самодельный парсер из трех строчек с регекспами. Но для сложных проектов это тупиковый путь, и будьте готовы, что придется применять какую-то специализированную библиотеку для парсинга, потому что с регекспами все хорошо только в простых случаях

    Если нужной информации нет, а есть только какие-то скрипты, то значит контент грузится скриптами. Все пропало, тащите selenium или headless chrome.

    Либо третий путь - смотрите в консоли хрома ОТКУДА эти скрипты тащат нужную инфу, и скачивайте напрямую нужные фрагменты страниц, или json-ы или что там у них (если там не огорожено каким-то ключами, конечно).

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Виктор Sys Ответ

    Да, HTML код, который приходит в ответ на запрос, может изменять формат с помощью различных техник и технологий. Вот несколько способов, как можно изменить формат HTML кода:

    1. CSS: С помощью каскадных таблиц стилей (CSS) можно легко изменить внешний вид HTML элементов. Вы можете применить различные стили к элементам, таким как цвет текста, размер шрифта, отступы, рамки и многое другое. Например, вы можете использовать CSS для изменения цвета фона или шрифта у определенного элемента или для создания анимации.

     
        .myElement {
            color: red;
            font-size: 20px;
        }

    .myElement { color: red; font-size: 20px; }

    2. JavaScript: С помощью JavaScript можно динамически изменять HTML код на странице. Например, вы можете добавлять или удалять элементы, изменять их содержимое или атрибуты. Это может быть полезно для создания интерактивных элементов или анимаций.

     
        document.getElementById("myElement").style.color = "blue";

    document.getElementById("myElement").style.color = "blue";

    3. PHP: Если вы используете PHP на сервере, вы можете генерировать HTML код динамически в зависимости от определенных условий или данных. Например, вы можете использовать PHP для вывода разных сообщений или данных в зависимости от входных параметров.

    <?php
        $color = "red";
        echo &quot;<div style='color: $color'>Hello, World!</div>";
    ?&gt;

    &lt;?php $color = &quot;red&quot;; echo &quot;<div style='color: $color'>Hello, World!</div>"; ?&gt;

    4. Препроцессоры CSS: Существуют различные препроцессоры CSS, такие как Sass или Less, которые позволяют использовать переменные, миксины, вложенные стили и другие продвинутые функции для управления стилями HTML элементов.

    Таким образом, HTML код, который приходит при запросе, может быть легко изменен с помощью CSS, JavaScript, PHP или препроцессоров CSS для достижения желаемого формата или внешнего вида.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно