Requests gebruiken voor URL's
Leer GET- en POST-verzoeken te versturen om webpagina-inhoud op te halen met de Python-bibliotheek Requests.
Requests gebruiken voor URL's is een gratis Webscraping en bots-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Webscraping en bots. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Webscraping en bots bevat in totaal 4 lessen.
Maak kennis met de Requests-bibliotheek van Python
Welkom bij het gebruik van Python voor interactie met het web! In deze les duiken we in de Requests-bibliotheek, je belangrijkste tool voor het versturen van HTTP-verzoeken.
Requests vereenvoudigt de manier waarop je Python-programma met websites communiceert. De bibliotheek werkt als een webbrowser, maar zonder grafische interface. Je hebt deze nodig om webpagina-inhoud op te halen voordat je gegevens kunt extraheren.
Requests instellen
Voordat we Requests kunnen gebruiken, moeten we de bibliotheek installeren. Als je dat nog niet hebt gedaan, open je terminal of opdrachtprompt en voer je de volgende opdracht uit:
pip install requests
Deze opdracht downloadt en installeert de bibliotheek, zodat je Python-scripts die kunnen gebruiken. Je hoeft dit maar één keer in je omgeving te doen.
Je eerste GET-verzoek
Het meest voorkomende type verzoek is GET. Dit wordt gebruikt om gegevens uit een opgegeven bron op te halen, net zoals wanneer je browser een webpagina laadt.
Laten we een eenvoudig GET-verzoek maken om inhoud van example.com op te halen. Daarna drukken we de HTTP-statuscode en een fragment van de tekst op de pagina af.
import requests
# Define the URL you want to fetch
url = "http://www.example.com"
# Send a GET request
response = requests.get(url)
# Print the status code and first 200 characters of the content
print(f"Status Code: {response.status_code}")
print(f"Content snippet:\n{response.text[:200]}")Het Response-object begrijpen
Wanneer je een verzoek verstuurt, retourneert de functie requests.get() een Response-object. Dit object bevat alle informatie over het antwoord van de server.
response.status_code: een geheel getal dat de HTTP-status aangeeft (bijvoorbeeld 200 voor OK en 404 voor Niet gevonden).response.text: de inhoud van de reactie, meestal HTML, als tekenreeks.response.url: de daadwerkelijke URL van de reactie.
Eenvoudige foutcontrole
Het is een goede gewoonte om te controleren of je verzoek is gelukt. De methode response.raise_for_status() is een eenvoudige manier om dit te doen.
Als de HTTP-statuscode op een fout wijst (bijvoorbeeld 4xx of 5xx), genereert deze methode een HTTPError. Anders doet de methode niets.
import requests
url = "http://www.example.com/nonexistent-page"
try:
response = requests.get(url)
response.raise_for_status() # Raises an HTTPError for bad responses (4xx or 5xx)
print("Request successful!")
except requests.exceptions.HTTPError as err:
print(f"HTTP Error occurred: {err}")
except requests.exceptions.ConnectionError as err:
print(f"Connection Error occurred: {err}")
except Exception as err:
print(f"An unexpected error occurred: {err}")Headers aan een verzoek toevoegen
Soms controleren websites specifieke HTTP-headers om te bepalen of een verzoek afkomstig is van een legitieme browser of een bot.
Je kunt je verzoek aanpassen door een woordenboek met headers mee te geven. Een veelgebruikte header is User-Agent om een browser na te bootsen.
import requests
url = "http://httpbin.org/get" # A service that echoes your request
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9"
}
response = requests.get(url, headers=headers)
print("Your request headers sent to httpbin.org:")
# httpbin.org returns JSON, so we can use .json()
print(response.json()['headers']['User-Agent'])
print(response.json()['headers']['Accept-Language'])POST-verzoeken begrijpen
Waar GET-verzoeken bedoeld zijn om gegevens op te halen, worden POST-verzoeken gebruikt om gegevens naar een server te sturen, meestal om een resource te maken of bij te werken.
Denk aan het verzenden van een formulier op een website: meestal verstuur je de gegevens via een POST-verzoek. De gegevens staan in de body van het verzoek, niet in de URL.
Gegevens verzenden met POST
Om een POST-verzoek met gegevens te verzenden, gebruik je requests.post() en geef je je gegevens als een woordenboek mee aan de parameter data.
Laten we proberen enkele eenvoudige formuliergegevens naar httpbin.org/post te verzenden. Deze service stuurt de ontvangen gegevens terug.
import requests
url = "http://httpbin.org/post"
# Data to send in the POST request
payload = {
"name": "Coddy",
"city": "Kitland",
"age": "5"
}
response = requests.post(url, data=payload)
print("Data received by httpbin.org:")
# The 'form' key in the JSON response contains the sent data
print(response.json()['form'])GET versus POST: belangrijkste verschillen
Het is belangrijk om te begrijpen wanneer je GET of POST gebruikt:
- GET: Haalt gegevens op; parameters zijn zichtbaar in de URL en verzoeken kunnen als bladwijzer worden opgeslagen en in de cache worden geplaatst. Het meest geschikt voor het ophalen van niet-gevoelige gegevens.
- POST: Verstuurt gegevens om te worden verwerkt; parameters staan in de body van het verzoek en zijn niet zichtbaar in de URL. Verzoeken worden niet in de cache geplaatst en kunnen niet als bladwijzer worden opgeslagen. Het meest geschikt voor het verzenden van formulieren, het uploaden van bestanden of het verzenden van gevoelige gegevens.
Controleer je begrip
Je hebt geleerd over GET- en POST-verzoeken. Bekijk het volgende scenario:
Je wilt de huidige weersverwachting voor een specifieke stad ophalen uit een openbare API. Welke HTTP-verzoekmethode is het meest geschikt?
Samenvatting van de les
Goed gedaan! Je hebt een belangrijke stap gezet in het leren werken met het web via de Requests-bibliotheek van Python.
- We hebben de bibliotheek
requestsgeïnstalleerd. - We hebben geleerd GET-verzoeken te verzenden om webinhoud op te halen.
- We hebben het antwoordobject onderzocht door statuscodes en inhoud te controleren.
- We hebben kort besproken hoe je fouten bij verzoeken afhandelt.
- We hebben verzoeken aangepast met headers.
- We hebben geleerd gegevens te verzenden met POST-verzoeken.
- Tot slot hebben we het verschil tussen GET en POST voor verschillende interacties met het web besproken.
Vervolgens leer je hoe je de HTML-inhoud die je hebt opgehaald, kunt parseren!
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Requests gebruiken voor URL's” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Webscraping en bots, waaronder “Requests gebruiken voor URL's”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Webscraping en bots bevat in totaal 4 lessen.
Wat leer ik in “Requests gebruiken voor URL's”?
Leer GET- en POST-verzoeken te versturen om webpagina-inhoud op te halen met de Python-bibliotheek Requests. Je oefent met Webscraping en bots door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Webscraping en bots te beginnen?
Ervaring vooraf is niet nodig. Webscraping en bots op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Requests gebruiken voor URL's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Webscraping en bots?
Ja. Elke les over Webscraping en bots bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Uw omgeving instellen
- Requests gebruiken voor URL's
- Gegevens extraheren met BeautifulSoup
- Navigeren door de DOM met CSS-selectors