Skip to main content

Come estrarre i collegamenti da qualsiasi pagina Web utilizzando PowerShell

Come estrarre i collegamenti da qualsiasi pagina Web utilizzando PowerShell

Geoffrey Carr

PowerShell 3 ha un sacco di nuove funzionalità, tra cui alcune potenti nuove funzionalità relative al web. Semplificano notevolmente l'automazione del Web e oggi mostreremo come estrarre ogni singolo link da una pagina Web e, facoltativamente, scaricare la risorsa, se lo desideri.

Scraping The Web con PowerShell

Esistono due nuovi cmdlet che semplificano l'automazione del Web, Invoke-WebRequest che semplifica l'analisi dei contenuti leggibili dall'uomo e Invoke-RestMethod che semplifica la lettura dei contenuti leggibili 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 è utilizzare Invoke-WebRequest e dargli un URL.

Invoke-WebRequest –Uri ‘http://howtogeek.com’

Se scorri verso il basso vedrai che la risposta ha una proprietà link, possiamo usare la nuova funzione di enumerazione dei membri di PowerShell 3 per filtrarli.

(Invoke-WebRequest –Uri ‘http://howtogeek.com’).Links

Come puoi vedere ottieni molti link indietro, qui è dove devi usare la tua immaginazione per trovare qualcosa di unico per filtrare i link che stai cercando. Supponiamo che vogliamo una lista di tutti gli articoli in prima pagina.

((Invoke-WebRequest –Uri ‘http://howtogeek.com’).Links | Where-Object {$_.href -like “http*”} | Where class -eq “title”).Title

Un'altra grande cosa che puoi fare con i nuovi cmdlet è automatizzare i download di tutti i giorni. Vediamo automaticamente come raschiare l'immagine del giorno dal sito di Nat Geo, per fare questo uniremo i nuovi cmdlet web con Start-BitsTransfer.

$IOTD = ((Invoke-WebRequest -Uri ‘http://photography.nationalgeographic.com/photography/photo-of-the-day/’).Links | Where innerHTML -like “*Download Wallpaper*”).href Start-BitsTransfer -Source $IOTD -Destination C:IOTD

Questo è tutto ciò che c'è da fare. Hai qualche trucco per te? Fateci sapere nei commenti.

Link
Plus
Send
Send
Pin