PowerShell:
Загрузка веб-страницы
Как это сделать:
Вот магическое заклинание для извлечения веб-страницы с использованием PowerShell. Мы воспользуемся Invoke-WebRequest
.
# Забираем содержимое example.com
$response = Invoke-WebRequest -Uri "http://example.com"
# Вот что вы получили
$response.Content
Пример вывода:
<!doctype html>
<html>
<head>
<title>Пример Домена</title>
...
<!-- и так далее -->
</head>
...
</html>
Возможно, вас интересует только текст, без HTML тегов. Давайте сделаем это:
# Только текст, пожалуйста
$response.ParsedHtml.body.innerText
Глубокое Погружение
Когда-то PowerShell не имел крутой командлет Invoke-WebRequest
. Программисты использовали класс .NET System.Net.WebClient
или прибегали к внешним инструментам. Теперь это все встроено, что упрощает нам задачи.
Invoke-WebRequest
предлагает больше, чем просто содержимое. Заголовки, статус и информация о сессии - это все там. Если вы работаете с API, вам понравится Invoke-RestMethod
как специализированная альтернатива.
Внутри, эти командлеты полагаются на мощный класс .NET HttpClient, обеспечивающий надежность и обширный функционал.
И, если вы нетерпеливы в ожидании скачивания веб-страницы, Invoke-WebRequest
также поддерживает асинхронные операции. Однако, это тема для другого разговора.
Смотрите Также
- Документация по Invoke-WebRequest
- Больше о Invoke-RestMethod для взаимодействия с API
- Репозиторий PowerShell на GitHub для любопытных программистов, которым нравится заглядывать под капот.