PowerShell 3 имеет много новых функций, в том числе некоторые мощные новые функции, связанные с Интернетом. Они значительно упрощают автоматизацию Интернета, и сегодня мы собираемся показать вам, как вы можете извлечь каждую ссылку с веб-страницы и, при желании, загрузить ресурс.
Очистка сети с помощью PowerShell
Существуют два новых командлета, которые упрощают автоматизацию Интернета: Invoke-WebRequest, облегчающий анализ читабельного контента, и Invoke-RestMethod, облегчающий чтение машиночитаемого контента. Поскольку ссылки являются частью HTML-страницы, они являются частью удобочитаемого материала. Все, что вам нужно сделать, чтобы получить веб-страницу, это использовать Invoke-WebRequest и дать ему URL.
Invoke-WebRequest –Uri ‘http://howtogeek.com’
Если вы прокрутите вниз, то увидите, что ответ имеет свойство links, мы можем использовать новую функцию перечисления членов PowerShell 3, чтобы отфильтровать их.
(Invoke-WebRequest –Uri ‘http://howtogeek.com’). Ссылки
Как вы видите, вы получаете множество ссылок назад, и здесь вам нужно использовать свое воображение, чтобы найти что-то уникальное для фильтрации ссылок, которые вы ищете. Предположим, нам нужен список всех статей на первой странице.
((Invoke-WebRequest –Uri ‘http://howtogeek.com’) .Links | Where-Object {$ _. Href-like «http *»} | Где class -eq «title»). Заголовок
Еще одна замечательная вещь, которую вы можете сделать с новыми командлетами, это автоматизировать ежедневные загрузки. Давайте рассмотрим автоматическую очистку изображения выходного дня на веб-сайте Nat Geo, для этого мы объединим новые веб-командлеты с Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri ‘http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Где innerHTML -подобно «* Скачать обои *»). Href < бр />
Start-BitsTransfer -Source $ IOTD -Назначение C: \ IOTD \
Это все, что нужно сделать. Есть какие-нибудь изящные трюки? Дайте нам знать об этом в комментариях.