Homepage » come » Come estrarre i collegamenti da qualsiasi pagina Web utilizzando PowerShell

    Come estrarre i collegamenti da qualsiasi pagina Web utilizzando PowerShell

    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 vi mostreremo come estrarre ogni singolo link da una pagina Web e, se lo desiderate, scaricare la risorsa facoltativamente.

    Raschiare il Web con PowerShell

    Esistono due nuovi cmdlet che rendono più semplice 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 è 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 un elenco di tutti gli articoli in prima pagina.

    ((Invoke-WebRequest -Uri 'http://howtogeek.com') .Links | Dove-Object $ _. Href -like "http *" | Dove classe -eq "titolo"). Titolo

    Un'altra grande cosa che puoi fare con i nuovi cmdlet è di 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. Dove innerHTML -like "* Download Wallpaper *"). Href
    Start-BitsTransfer -Source $ IOTD -Destinazione C: \ IOTD \

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