Як витягти посилання з будь-якої веб-сторінки за допомогою PowerShell
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-подібний "http *" | Де клас -eq "title").
Ще одна цікава річ, яку ви можете зробити з новими командлетами, це автоматизація щоденних завантажень. Давайте подивимося на автоматичне вилучення зображення дня на сайті Nat Geo, для цього ми об'єднаємо нові веб-командлети з Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Link | Де innerHTML-подібний “* Завантажити шпалери *”). Href
Start-BitsTransfer -Source $ IOTD -призначення C: \ t
Це все, що потрібно. Є якісь власні трюки? Дайте нам знати в коментарях.