Как извлечь ссылки с любой веб-страницы с помощью PowerShell
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 \
Это все, что нужно сделать. Есть какие-нибудь изящные трюки? Дайте нам знать об этом в комментариях.