User-agents en headers rouleren
Implementeer dynamische rotatie van user-agents en HTTP-headers om legitiem browserverkeer na te bootsen en detectie te voorkomen.
User-agents en headers rouleren is een gratis Webscraping en bots-les op CoddyKit. Dit is les 1 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.
Detectie vermijden
Wanneer je websites scrapt, proberen ze vaak te detecteren of je een mens of een bot bent. Als ze denken dat je een bot bent, kunnen ze je blokkeren!
Een gebruikelijke manier waarop websites bots herkennen, is door naar je HTTP-headers te kijken. Deze headers bevatten informatie over je verzoek.
HTTP-headers begrijpen
Elke keer dat je browser of een script een verzoek naar een website doet, verstuurt het HTTP-headers. Beschouw ze als metagegevens die aan je verzoek zijn gekoppeld.
- User-Agent: Identificeert je browser en besturingssysteem.
- Accept: De typen inhoud waaraan je de voorkeur geeft.
- Referer: De vorige pagina waarop je je bevond.
- Accept-Language: Je voorkeurstaal.
Je digitale vingerafdruk
De header User-Agent is bijzonder belangrijk. Deze vertelt de webserver welk type client het verzoek doet.
De tekenreeks "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" identificeert bijvoorbeeld een Chrome-browser op Windows.
Bots gebruiken vaak een algemene User-Agent, of helemaal geen User-Agent. Dat is een duidelijk alarmsignaal!
Verdachte patronen herkennen
Als een website veel verzoeken vanaf hetzelfde IP-adres ziet, die allemaal exact dezelfde algemene User-Agent gebruiken, is het eenvoudig om te zien dat het om een bot gaat.
Webservers kunnen ook andere headers analyseren. Een echte browser verstuurt een uitgebreide set headers, terwijl een eenvoudig scrapingscript er misschien maar weinig verstuurt.
Een User-Agent-lijst samenstellen
Om echte browsers na te bootsen, heb je een verzameling verschillende User-Agent-tekenreeksen nodig. Je kunt die online vinden!
- Zoek naar "list of user agents".
- Haal ze uit browserverzoeken.
- Gebruik bibliotheken die zulke lijsten bijhouden.
Streef naar een combinatie van verschillende browsers (Chrome, Firefox en Safari) en besturingssystemen.
Je eerste aangepaste header
In Python kun je met de bibliotheek requests eenvoudig aangepaste headers voor je verzoeken instellen. We beginnen met één User-Agent.
Probeer dit voorbeeld uit te voeren:
import requests
url = "https://httpbin.org/headers"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
response = requests.get(url, headers=headers)
print(response.json()['headers']['User-Agent'])Dynamische selectie van User-Agents
Om je verzoeken natuurlijker te laten lijken, moet je je User-Agent afwisselen. Dat betekent dat je voor elk verzoek, of na enkele verzoeken, een andere kiest.
We kunnen de Python-module random gebruiken om een User-Agent uit een lijst te selecteren.
Probeer dit voorbeeld uit te voeren:
import requests
import random
user_agents = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
]
url = "https://httpbin.org/headers"
random_ua = random.choice(user_agents)
headers = {"User-Agent": random_ua}
response = requests.get(url, headers=headers)
print(f"Used UA: {random_ua}")
print(response.json()['headers']['User-Agent'])Verder dan User-Agent
Hoewel User-Agent essentieel is, versturen echte browsers nog veel andere headers. Door er enkele toe te voegen, kan je bot nog geloofwaardiger lijken.
- Accept-Language: bijvoorbeeld
en-US,en;q=0.9 - Accept-Encoding: bijvoorbeeld
gzip, deflate, br - Connection: bijvoorbeeld
keep-alive
Je kunt ook deze headers afwisselen, of een vaste set kiezen die past bij het browsertype van de User-Agent die je hebt gekozen.
Een uitgebreidere set headers
We combineren een willekeurige selectie van User-Agents met enkele andere gebruikelijke headers om een robuuster verzoek te maken.
Hierdoor wordt het moeilijker om je scrapingsbot van een gewone browser te onderscheiden.
Probeer dit voorbeeld uit te voeren:
import requests
import random
user_agents = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1"
]
url = "https://httpbin.org/headers"
random_ua = random.choice(user_agents)
headers = {
"User-Agent": random_ua,
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
}
response = requests.get(url, headers=headers)
print(f"Used UA: {random_ua}")
print("Received headers:")
for key, value in response.json()['headers'].items():
print(f" {key}: {value}")Controle van headerafwisseling
Je hebt geleerd hoe User-Agents en andere HTTP-headers in webverzoeken worden gebruikt. Door ze af te wisselen, kun je detectie helpen voorkomen.
Welke van de volgende redenen zijn goed om User-Agent en andere HTTP-headers tijdens het scrapen af te wisselen?
Samenvatting: opgaan in de massa
Goed gedaan! Je hebt geleerd hoe belangrijk HTTP-headers, vooral de User-Agent, zijn voor webscraping.
- Websites gebruiken headers om clients te identificeren.
- Vaste, algemene headers markeren bots.
- Door User-Agents af te wisselen en andere gebruikelijke headers toe te voegen, wordt je bot moeilijker te detecteren.
Dit is een krachtige techniek om op te gaan in de massa. Vervolgens bekijken we proxiebeheer om je IP-adres te verbergen!
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 “User-agents en headers rouleren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Webscraping en bots, waaronder “User-agents en headers rouleren”, 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 “User-agents en headers rouleren”?
Implementeer dynamische rotatie van user-agents en HTTP-headers om legitiem browserverkeer na te bootsen en detectie te voorkomen. 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 1 van 4.
Hoe lang duurt de les “User-agents en headers rouleren”?
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
- User-agents en headers rouleren
- Proxybeheer en IP-rotatie
- Strategieën voor CAPTCHA-oplossing
- Browserfingerprinting omzeilen