Sådan udtrækkes links fra enhver webside ved hjælp af PowerShell
PowerShell 3 har mange nye funktioner, herunder nogle kraftfulde nye webrelaterede funktioner. De forenkler dramatisk automatisering af internettet, og i dag vil vi vise dig, hvordan du kan udtrække hvert enkelt link fra en webside og eventuelt downloade ressourcen, hvis du ønsker det.
Skrabning af nettet med PowerShell
Der er to nye cmdlets, der gør det lettere at automatisere nettet, Invoke-WebRequest, der gør det lettere at læseligt læseligt indhold, og Invoke-RestMethod, der gør det læsbare indhold lettere at læse. Da links er en del af HTML-en på en side, er de en del af de menneskelige læsbare ting. Alt du skal gøre for at få en webside er at bruge Invoke-WebRequest og give det en URL.
Invoke-WebRequest -Uri 'http://howtogeek.com'
Hvis du ruller ned, vil du se svaret har en linkegenskab, vi kan bruge PowerShell 3s nye medlemsregistreringsfunktion til at filtrere disse ud.
(Invoke-WebRequest -Uri 'http://howtogeek.com') .Links
Som du kan se, får du mange links tilbage, det er her du skal bruge din fantasi til at finde noget unikt at filtrere ud de links, du leder efter. Lad os antage, at vi vil have en liste over alle artikler på forsiden.
((Invoke-WebRequest -Uri 'http://howtogeek.com') .Links | Hvor-objekt $ _. Href -like "http *" | Hvor klasse -eq "title"). Titel
En anden stor ting du kan gøre med de nye cmdlets er automatisere hverdags downloads. Lad os se på automatisk skrabning af billedet af dagen uden for Nat Geos hjemmeside. For at gøre dette kombinerer vi de nye web-cmdlets med Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | Where innerHTML-lignende "* Download Wallpaper *"). Href
Start-BitsTransfer -Source $ IOTD -Destination C: \ IOTD \
Det er alt der er til det. Har du noget sundt tricks? Lad os vide i kommentarerne.