PowerShell 3 має безліч нових функцій, включаючи деякі нові потужні функції, пов'язані з Інтернетом. Вони кардинально спрощують автоматизацію роботи в Інтернеті, і сьогодні ми покажемо вам, як ви можете витягнути кожне посилання з веб-сторінки, і, за бажанням, завантажте ресурс.
Вишкрібання Інтернету за допомогою PowerShell
Існує два нових командлети, що полегшують автоматизацію роботи в Інтернеті, Invoke-WebRequest, що полегшує розбір вмісту, що читається людиною, та Invoke-RestMethod, який полегшує читання машиночитаного вмісту. Оскільки посилання є частиною HTML сторінки, вони є частиною зручного для читання матеріалу. Все, що вам потрібно зробити, щоб отримати веб-сторінку, це скористатися Invoke-WebRequest і вказати їй URL-адресу.
Invoke-WebRequest –Uri ‘http://howtogeek.com’
Якщо ви прокрутите вниз, ви побачите, що відповідь має властивість посилання, ми можемо використовувати нову функцію перерахування членів PowerShell 3, щоб відфільтрувати їх.
(Invoke-WebRequest –Uri ‘http://howtogeek.com’). Посилання
Як бачите, ви отримуєте багато посилань назад, саме тут вам потрібно використовувати свою фантазію, щоб знайти щось унікальне, щоб відфільтрувати посилання, які ви шукаєте. Припустимо, нам потрібен список усіх статей на першій сторінці.
((Invoke-WebRequest –Uri ‘ http://howtogeek.com ’). Посилання | Де-Об'єкт {$_.href -like “http*”} | Де клас -eq "заголовок"). Заголовок
Ще одна чудова річ, яку ви можете зробити за допомогою нових командлетів, - це автоматизувати щоденне завантаження. Давайте подивимось на автоматичне зішкрібання зображення дня поза веб-сайтом Nat Geo, для цього ми поєднаємо нові веб-команди з Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri ‘ http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Де внутрішній HTML-подібний “* Завантажити шпалери *”). Href
Start-BitsTransfer -Джерело $ IOTD -Призначення C: \ IOTD \
Це все. Є якісь акуратні власні трюки? Повідомте нас у коментарях.