Может ли html код который приходит при запросе менять формат?
Я вообще не разбираюсь в парсинге, я написал код который по идее получает весь 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
Ответы:
я вообще не понимаю что я должен сделать
1. скачать страницу через curl или wget
2. открыть в текстовом редакторе
3. проверить, есть ли там интересующая вас информация.
Если есть - можно продолжить написать самодельный парсер из трех строчек с регекспами. Но для сложных проектов это тупиковый путь, и будьте готовы, что придется применять какую-то специализированную библиотеку для парсинга, потому что с регекспами все хорошо только в простых случаях
Если нужной информации нет, а есть только какие-то скрипты, то значит контент грузится скриптами. Все пропало, тащите selenium или headless chrome.
Либо третий путь - смотрите в консоли хрома ОТКУДА эти скрипты тащат нужную инфу, и скачивайте напрямую нужные фрагменты страниц, или json-ы или что там у них (если там не огорожено каким-то ключами, конечно).
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, 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 "<div style='color: $color'>Hello, World!</div>"; ?>
4. Препроцессоры CSS: Существуют различные препроцессоры CSS, такие как Sass или Less, которые позволяют использовать переменные, миксины, вложенные стили и другие продвинутые функции для управления стилями HTML элементов.
Таким образом, HTML код, который приходит при запросе, может быть легко изменен с помощью CSS, JavaScript, PHP или препроцессоров CSS для достижения желаемого формата или внешнего вида.