Koppelingen van elke webpagina verwijderen met PowerShell
PowerShell 3 heeft veel nieuwe functies, waaronder enkele krachtige nieuwe webgerelateerde functies. Ze vereenvoudigen het automatiseren van het web enorm, en vandaag laten we u zien hoe u elke afzonderlijke link van een webpagina kunt extraheren en desgewenst de bron kunt downloaden als u dat wilt.
Het web schrapen met PowerShell
Er zijn twee nieuwe cmdlets die het automatiseren van het web eenvoudiger maken, Invoke-WebRequest, die het parseren van door mensen leesbare inhoud eenvoudiger maakt, en Invoke-RestMethod, waardoor machinaal leesbare inhoud leesbaarder wordt. Omdat links deel uitmaken van de HTML van een pagina, maken ze deel uit van het menselijk leesbare spul. Het enige wat u hoeft te doen om een webpagina te krijgen, is Invoke-WebRequest gebruiken en het een URL geven.
Invoke-WebRequest -Uri 'http://howtogeek.com'
Als u naar beneden scrolt, ziet u dat het antwoord een eigenschap links heeft. We kunnen de nieuwe functie Ledenlijst van PowerShell 3 gebruiken om deze uit te filteren.
(Invoke-WebRequest -Uri 'http://howtogeek.com') .Links
Zoals u kunt zien krijgt u veel links terug, dit is waar u uw verbeeldingskracht moet gebruiken om iets unieks te vinden om de links die u zoekt uit te filteren. Laten we aannemen dat we een lijst van alle artikelen op de voorpagina willen.
((Invoke-WebRequest -Uri 'http://howtogeek.com') .Links | Where-Object $ _. Href -like "http *" | Where class -eq "title"). Titel
Een ander groot voordeel van de nieuwe cmdlets is het automatiseren van dagelijkse downloads. Laten we eens kijken naar het automatisch schrapen van de afbeelding van de dag van de Nat Geo-website, hiervoor combineren we de nieuwe web-cmdlets met Start-BitsTransfer.
$ IOTD = ((Invoke-WebRequest -Uri 'http://photography.nationalgeographic.com/photography/photo-of-the-day/').Links | Where innerHTML -like "* Download Wallpaper *"). Href
Start-BitsTransfer -bron $ IOTD-Bestemming C: \ IOTD \
Dat is alles wat er is. Heb je leuke trucjes van jezelf? Laat het ons weten in de comments.