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
- De Invoke-WebRequest documentatie
- Meer over Invoke-RestMethod voor API-interacties
- Een PowerShell GitHub-repository voor de nieuwsgierige programmeurs die graag onder de motorkap kijken.