PowerShell:
Разбор HTML
Как это сделать:
Давайте извлечем некоторые данные со страницы в интернете. Мы будем использовать Invoke-WebRequest, а затем отфильтруем то, что нам нужно.
# Получаем содержимое страницы
$response = Invoke-WebRequest -Uri "http://example.com"
# Парсим содержимое HTML
$parsedHtml = $response.ParsedHtml
# Извлекаем данные
# Допустим, мы хотим получить все тексты гиперссылок
$links = $parsedHtml.getElementsByTagName('a') | ForEach-Object { $_.innerText }
$links
Пример вывода:
Главная
О нас
Услуги
Контакт
Подробнее
Исторически парсинг HTML в PowerShell мог быть неуклюжим. У вас был выбор использования regex (печально известного для HTML), COM объектов с Internet Explorer или сторонних библиотек. Теперь, cmdlet Invoke-WebRequest в PowerShell упрощает процесс, интегрируясь с движком Internet Explorer для парсинга HTML — хотя это немного медленно и громоздко.
Существуют альтернативы, такие как библиотека HtmlAgilityPack, которая гораздо более надежна и точно настроена для парсинга HTML. Она требует дополнительной настройки, но окупается гибкостью и производительностью.
С точки зрения реализации, стоит отметить, что подход PowerShell не всегда точен для динамического содержимого, заполняемого JavaScript. Для работы с динамическим содержимым вам может потребоваться инструмент автоматизации браузера, такой как Selenium.