PowerShell:
Een webpagina downloaden

Hoe:

Hier is de magische formule om een webpagina te fetchen met PowerShell. We zullen Invoke-WebRequest gebruiken.

# Pak de inhoud van example.com
$response = Invoke-WebRequest -Uri "http://example.com"

# Dit is wat je hebt gekregen
$response.Content

Voorbeelduitvoer:

<!doctype html>
<html>
<head>
    <title>Voorbeeld Domein</title>
    ...
    <!-- en zo verder -->
</head>
...
</html>

Je bent misschien alleen na tekst, geen HTML-tags. Laten we dat doen:

# Alleen de tekst, alsjeblieft
$response.ParsedHtml.body.innerText

Diepgaande Duik

Er was eens een tijd waarin PowerShell niet beschikte over de coole Invoke-WebRequest cmdlet. Programmeurs zouden de .NET System.Net.WebClient klasse gebruiken of hun toevlucht nemen tot externe tools. Nu, is het allemaal ingebouwd, waardoor taken voor ons allemaal vereenvoudigd worden.

Invoke-WebRequest biedt meer dan alleen inhoud. Headers, status en sessie-informatie – het is er allemaal. Als je met API’s speelt, zul je Invoke-RestMethod geweldig vinden als een gefocust alternatief.

Onder de motorkap vertrouwen deze cmdlets op de zware .NET HttpClient klasse, betrouwbaarheid en uitgebreide functionaliteit verpakkend.

En, als je ongeduldig wordt terwijl je wacht op het downloaden van die webpagina, ondersteunt Invoke-WebRequest ook asynchrone operaties. Echter, dat is een onderwerp voor een andere dag.

Zie Ook