
PowerShell 3 ha molte nuove funzionalità, tra cui alcune potenti nuove funzionalità relative al Web. Semplificano notevolmente l'automazione del Web e oggi vi mostreremo come è possibile estrarre ogni singolo collegamento da una pagina Web e, facoltativamente, scaricare la risorsa se lo si desidera.
Raschiare il Web con PowerShell
Esistono due nuovi cmdlet che semplificano l'automazione del Web, Invoke-WebRequest che semplifica l'analisi del contenuto leggibile dall'uomo e Invoke-RestMethod che semplifica la lettura del contenuto leggibile dalla macchina. Poiché i collegamenti fanno parte dell'HTML di una pagina, fanno parte delle cose leggibili dall'uomo. Tutto quello che devi fare per ottenere una pagina web è usare Invoke-WebRequest e dargli un URL.
Invoke-WebRequest –Uri “http://howtogeek.com”

Se scorri verso il basso, vedrai che la risposta ha una proprietà links, possiamo usare la nuova funzione di enumerazione dei membri di PowerShell 3 per filtrarli.
(Invoke-WebRequest –Uri “http://howtogeek.com”) .Link

Come puoi vedere hai molti link indietro, qui è dove devi usare la tua immaginazione per trovare qualcosa di unico per filtrare i link che stai cercando. Supponiamo di voler un elenco di tutti gli articoli in prima pagina.
((Invoke-WebRequest –Uri ″ http://howtogeek.com ’) .Links | Where-Object {$ _. Href -like“ http * ”} | Where class -eq“ title ”). Titolo

Un'altra grande cosa che puoi fare con i nuovi cmdlet è automatizzare i download di tutti i giorni. Vediamo come raschiare automaticamente l'immagine del giorno libero dal sito Web di Nat Geo, per fare questo combineremo i nuovi cmdlet Web con Start-BitsTransfer.
$ IOTD = (((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Dove innerHTML -like “* Scarica Wallpaper *”). Href
Start-BitsTransfer -Source $ IOTD -Destinazione C: IOTD
Questo è tutto. Hai qualche trucco da fare? Fateci sapere nei commenti.
