Datacenter-proxy's zijn het geheime wapen van scrapers: ze bieden snelheid, schaalbaarheid en kostenbesparingen. Maar om ze effectief te kunnen gebruiken, is kennis nodig. Deze uitgebreide gids van meer dan 4500 woorden behandelt alles wat u nodig hebt om succesvol op grote schaal te scrapen met datacenterproxy's.
Wat zijn datacenterproxy's?
Een proxy fungeert als tussenpersoon tussen uw schraper en de doelwebsite:
In plaats dat de site uw IP-adres ziet, ziet deze het IP-adres van de proxyserver. Hierdoor kunt u:
- Roteer IP's om blokkades te voorkomen
- Omzeil geografische beperkingen
- Anoniem schrapen
- Overwin snelheidslimieten door de belasting te spreiden
Datacenterproxy's specifiek draaien op servers die worden gehost in grote datacentra (vandaar de naam). De machines zijn eigendom van bedrijven als BrightData, Oxylabs en Apify, die proxytoegang verkopen.
Datacenter-proxy's worden ook wel backconnect-proxy's omdat meerdere gebruikers verbinding maken via één enkel IP-adres. De proxy onderhoudt een pool van verbindingen, wijst u per verzoek een willekeurige open verbinding toe en maakt opnieuw verbinding zodra u klaar bent. Hierdoor kunnen duizenden gebruikers IP's delen.
BrightData heeft bijvoorbeeld ruim 72 miljoen IP’s vergelijkbare webgegevens. Oxylabs prijst meer dan 40 miljoen IP's aan. Deze schaal is cruciaal voor het spreiden van de schraaplast en het vermijden van verstoppingen.
Residentiële versus datacenterproxy's
Het alternatieve proxytype is residentiële volmachten. Deze draaien op echte apparaten zoals smartphones, laptops en smart-tv's.
Hier ziet u hoe datacenter- en residentiële proxy's zich verhouden:
Datacenter-proxy's | Residentiële proxy's | |
---|---|---|
Speed | Zeer snel (Gbps) | Langzaam (10-100 Mbps) |
Uptime | Uitstekend | Gemiddelde |
Kosten | Laag ($1/GB) | Hoog ($10+/GB) |
Verbied weerstand | Gemiddelde | Heel goed |
CAPTCHA oplossen | Hard | Eenvoudige |
Zoals je kan zien, datacenterproxy's zijn aanzienlijk goedkoper en sneller. Maar residentiële IP's zijn minder verdacht en beter voor het oplossen van CAPTCHA's.
We raden u aan datacenterproxy's te gebruiken voor de meeste scraping-taken. Gebruik alleen residentiële proxy's als dit absoluut noodzakelijk is of als u zich op uitdagende sites richt.
Aan de slag met datacenterproxy's
Als u datacenterproxy's wilt gaan gebruiken, moet u toegang kopen bij een provider zoals:
- HelderData (aanbevolen)
- Apify
- oxylabs
- smartproxy
Deze providers bieden datacenterproxy's tegen gedifferentieerde maandelijkse prijzen:
leverancier | Prijs per GB | Prijs per 1M IP's |
---|---|---|
HelderData | $1 | $300 |
oxylabs | $2 | $500 |
Apify | $1.50 | $250 |
smartproxy | $3.50 | $700 |
BrightData is een van de goedkoopste met slechts $ 1 per GB.
Zodra u zich heeft aangemeld, krijgt u proxy-URL's or havens te gebruiken in uw code:
# Python example
import requests
proxy_url = ‘http://user:[email protected]:8000‘
response = requests.get(‘https://example.com‘, proxies={
‘http‘: proxy_url,
‘https‘: proxy_url
})
Veel aanbieders bieden dit ook aan REST API's en SDK's in Node, Python, Java, enz. om proxies programmatisch te beheren.
Proxy-verbodstechnieken
Voordat we dieper ingaan op het optimaliseren van proxy's, moeten we eerst begrijpen hoe sites deze detecteren en blokkeren:
1. Specifieke IP’s op de zwarte lijst zetten
De eenvoudigste methode is het op de zwarte lijst zetten van IP-adressen. Sites houden lijsten bij met bekende slechte IP-adressen en blokkeren alle overeenkomende verzoeken.
Gedeelde datacenter-IP's worden vaak op de zwarte lijst gezet omdat eerdere gebruikers deze hebben misbruikt. Speciale statische IP's waarvan u de eigenaar bent, voorkomen dit probleem.
Volgens Apify voorbij 92% van de sites wordt geblokkeerd via zwarte lijsten. Het snel wisselen van gedeelde IP’s is de sleutel tot het voorkomen van problemen.
2. Volledige IP-bereiken blokkeren
Sites plaatsen ook een zwarte lijst van IP-bereik met behulp van de unieke ASN-identificatie die aan elk IP-blok is toegewezen. Veelvoorkomende datacenterbereiken zijn gemakkelijk te identificeren en te verbieden.
Alle Azure-datacenter-IP's beginnen bijvoorbeeld met 52.160.0.0 tot en met 52.191.255.255. Sites kunnen dus elk verzoek van die ~1 miljoen IP's blokkeren.
Het gebruik van proxy's van meerdere providers met verschillende bereiken helpt grootschalige ASN-blokkeringen te voorkomen.
3. Verkeerspatronen analyseren
Sommige beveiligingsdiensten zoals Cloudflare bouwen statistische modellen om te identificeren verdachte verkeerspatronen.
Als al het verkeer bijvoorbeeld precies vijf minuten uit elkaar ligt, of vergelijkbare user-agent-patronen volgt, kan het als botachtig worden gemarkeerd.
Het nabootsen van menselijke patronen is van cruciaal belang, zoals we later zullen bespreken.
4. Hele landen verbieden
Sites plaatsen gewoonlijk verkeer uit bepaalde regio's op de zwarte lijst om aanvallen te verminderen of eenvoudigweg de prestaties te verbeteren.
Door de proxylocatie te roteren, wordt locatiegebaseerde blokkering voorkomen. Bij de meeste datacenterproviders kunt u het land instellen in de proxy-URL's.
5. HTTP-headers analyseren
Een andere veel voorkomende tactiek is het zoeken naar verdachte HTTP-headers, zoals:
- Geen browser-user-agent
- Ontbrekende headers zoals Accept-Language
- Vreemde user-agents zoals
Python/3.6 aiohttp/3.6.2
Het repareren van headers om browsers na te bootsen is van cruciaal belang. Gereedschappen zoals HelderData en Apify doe dit automatisch.
6. Frequentie- en snelheidsbeperking
Een van de meest agressieve beschermingen is snelheidsbeperking – slechts X verzoeken per minuut/uur toestaan vanaf één IP-adres.
Door regelmatig te rouleren tussen een grote groep datacenter-IP's kunt u snelheidslimieten omzeilen.
Proxy's optimaliseren voor succes
Het simpelweg vermijden van basisblokken is niet voldoende. U moet het proxygebruik zorgvuldig optimaliseren voor succes, prestaties en een lange levensduur bij het schrapen op schaal.
Gebruik proxysessies
Tool als BrightData en Oxylabs bieden het cruciale concept van proxy-sessies. Hierdoor wordt het mogelijk om een IP-adres aan uw sessie te 'vergrendelen' voor meerdere verzoeken voordat het wordt gerouleerd.
Dit voorkomt dat er te vaak tussen IP's wordt geroteerd. Hergebruik sessies in plaats van IP's zelf.
Voorbeeld sessiearchitectuur:
Session 1 > IP 1
IP 2
IP 3
Session 2 > IP 4
IP 5
IP 6
Roteer sessies op minuten- of urenschaal in plaats van op verzoeken.
Cookies en headers volhouden
Wissel geen cookies uit tussen sessies/IP's. Gebruik consistent dezelfde sessiespecifieke cookies voor alle verzoeken.
Hetzelfde geldt voor headers: elke sessie moet een unieke browser nabootsen met aangepaste headerwaarden.
Voeg willekeur toe
Overbelast een klein aantal IP's of sessies niet. Roteer willekeurig om de belasting over grote proxypools te verdelen voor optimale prestaties.
Beperk gelijktijdige verzoeken
Te veel parallelle verzoeken kunnen proxy's overbelasten en verbannen worden. Beperk gelijktijdigheid tot ~10 verzoeken per IP als een veilige benchmark.
Houd de gezondheid proactief in de gaten
Let op 5xx-fouten, time-outs, blokkades, etc. Schakel ongezonde sessies uit, zodat ze de tijd hebben om te resetten voordat ze opnieuw worden gebruikt.
Logica voor opnieuw proberen inschakelen
Probeer afzonderlijke mislukte verzoeken twee tot drie keer opnieuw voordat u de onderliggende proxysessie uitschakelt. Dit minimaliseert valse positieven.
Neem langzaam time-outs
Begin met hogere time-outs van 60-90 seconden. Snelle mislukkingen verhogen de belasting van nieuwe proxy's.
Vermijd lussen
Probeer mislukte aanvragen niet snel opnieuw in een strakke lus; dit vergroot de belasting. Gebruik uitstelvertragingen of wachtrijen.
Vertragingen inbouwen
Voeg kleine willekeurige vertragingen toe tussen verzoeken om menselijke patronen na te bootsen. Beginnen met 1-3s/verzoek is goed.
Geavanceerde antiblokkeertechnieken
Laten we een aantal meer geavanceerde tactieken bespreken die sites kunnen gebruiken – en hoe je deze kunt tegengaan:
Browser-vingerafdrukken
Browservingerafdrukken omvatten technieken zoals canvasweergave, lettertypedetectie en WebGL-vingerafdrukken om echte browsers te identificeren.
Oplossingen:
- Gebruik tools zoals BrightData en Browserless die volledige browseremulatie bieden
- Schakel headless browser-scrapping in met Puppeteer of Toneelschrijver
- Proxydiensten kunnen echte browservingerafdrukken leveren
CAPTCHA-uitdagingen
Sites kunnen moeilijke CAPTCHA's afdwingen, vooral nadat ze tekenen van botverkeer hebben opgemerkt.
Oplossingen:
- Schakel over naar residentiële proxy's die CAPTCHA's gemakkelijker oplossen
- Gebruik CAPTCHA-oplossende diensten zoals Anticaptcha
- Voorkom dat u in de eerste plaats wordt gemarkeerd door menselijk gedrag na te bootsen
Geavanceerde machine learning
Grote sites kunnen complexe ML-modellen trainen op verkeerspatronen of gebruikersgedrag. Zeer moeilijk te omzeilen.
Oplossing:
- Te gebruiken residentiële roterende proxy's die een hoge anonimiteit bieden door regelmatig echte IP’s te wisselen
Juridische blokkades
In sommige gevallen kunnen sites dreigen of juridische stappen ondernemen als het schrapen na waarschuwingen doorgaat.
Oplossingen:
- Raadpleeg een advocaat om de risico's te begrijpen
- Controleer de Servicevoorwaarden van de website voor toegestaan gebruik
- Overweeg in plaats daarvan alternatieven, zoals het verzamelen van gegevens uit een upstream-aggregator
Proxy's gebruiken met populaire bibliotheken
Alle grote scraping- en automatiseringsbibliotheken maken het gemakkelijk om proxy's te gebruiken:
Python
import requests
proxies = {
‘http‘: ‘http://user:[email protected]:5678‘,
‘https‘: ‘http://user:[email protected]:5678‘
}
response = requests.get(‘https://example.com‘, proxies=proxies)
Node.js
const axios = require(‘axios‘);
const proxyUrl = ‘http://user:[email protected]:5678‘;
const response = await axios.get(‘https://example.com‘, {
proxy: {
protocol: ‘http‘,
host: ‘1.2.3.4‘,
port: 5678,
auth: {
username: ‘user‘,
password: ‘pass‘
}
}
});
Java
import java.net.Proxy;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("1.2.3.4", 5678));
HttpClient httpClient = HttpClientBuilder.create()
.setProxy(proxy)
.build();
HttpResponse response = httpClient.execute(request);
Zie de documentatie voor elke bibliotheek voor meer informatie over het integreren van proxy's.
Proxy's programmatisch beheren
De meeste proxyproviders bieden dit ook aan API's en SDK's om proxy's programmatisch te beheren:
// Rotate proxy IP using BrightData SDK
const { BrightDataClient } = require(‘brightdata‘);
const client = new BrightDataClient({
authToken: ‘AUTH_TOKEN‘
});
const proxyUrl = await client.getProxyUrl(); // Returns fresh proxy URL
Dit maakt het dynamisch roteren van IP's mogelijk op basis van gezondheid, het oplossen van CAPTCHA's, het selecteren van locatie en meer.
Zie de documentatie voor:
voor meer informatie over programmatische toegang.
Conclusie
Zoals deze uitgebreide gids aantoonde, datacenterproxy's bieden een snelle en kosteneffectieve oplossing voor grootschalige webscraping bij correct gebruik.
De sleutel is het zorgvuldig beheren van het proxygebruik om de prestaties te maximaliseren en tegelijkertijd organisch menselijk gedrag na te bootsen. Technieken zoals proxysessies, aangepaste headers, gecontroleerde rotatie en verkeersanalyse zijn cruciaal.
Geavanceerde anti-botdiensten kunnen nog steeds voor uitdagingen zorgen. In deze gevallen kunnen residentiële volmachten vereist zijn. Zorg ervoor dat u een juridisch adviseur raadpleegt als u doorgaat met schrapen na blokkering en waarschuwingen.
Krachtige tools zoals BrightData, Oxylabs, Apify en Smartproxy maken het eenvoudig om datacenterproxy's in uw scrapingprojecten op te nemen. Met de juiste instellingen kunt u gegevens met succes en op schaal schrapen.
Heeft u iets toe te voegen over datacenterproxy's? Neem gerust contact op! Ik ben altijd blij om de nieuwste proxy-scraping-technieken te bespreken.