donker proxyscrape logo

Hoe CAPTCHA's omzeilen bij web scrapen? - 5 eenvoudige stappen

Hoe doe je dat?, Schrapen, Januari-03-20235 min gelezen

Wanneer je gegevens van grootschalige websites scraapt, is de kans het kleinst dat je niet met een CAPTCHA te maken hebt gehad om te bewijzen dat je een mens bent. Als webscraper weet je misschien al waarom cyberbeveiligingsprofessionals deze CAPTCHA's moesten uitvinden. Ze waren het gevolg van bots die eindeloze websiteverzoeken automatiseerden om toegang te krijgen. Dus zelfs echte gebruikers moesten de pijn doorstaan van het confronteren met CAPTCHA's die in verschillende vormen verschijnen. Je kunt echter CAPTCHA's omzeilen, of je nu een webscraper bent of niet, en dat is het doel van dit artikel. Maar laten we eerst eens duiken in wat CAPTCHA's zijn.

CAPTCHA omzeilen voor webscraping

CAPTCHA's worden meestal geactiveerd om onnatuurlijk verkeer op de site te detecteren. Om deze beperking te omzeilen, geven gebruikers de voorkeur aan een oplossing die al deze CAPTCHA-codes kan kraken en toegang kan krijgen tot de website als een echt mens. Een oplossing om captcha's te omzeilen is Capsolver. Het gebruik van proxies bij de webverzoeken zal gebruikers ook helpen om als natuurlijk verkeer over te komen. 

Wat is een CAPTCHA?

CAPTCHA staat voor Completely Automated Public Turing Test to tell Computers and Humans Apart. Dat is een behoorlijk lang acroniem, nietwaar? Nu vraag je je misschien af wat het laatste deel van dit acroniem, Turing Test, betekent - wel, het is een eenvoudige test om te bepalen of een mens of een bot interactie heeft met een webpagina of webserver.

Een CAPTCHA maakt immers onderscheid tussen mensen en bots en helpt cybersecurity-analisten om webservers te beschermen tegen brute force-aanvallen, DDoS en in sommige situaties, web scraping. 

Laten we eens kijken hoe CAPTCHA's mensen van bots onderscheiden.

Hoe werken CAPTCHA's?

Je vindt de CAPTCHA's in de formulieren van een website, waaronder contact-, registratie-, commentaar-, aanmeld- of afrekenformulieren.

Traditionele CAPTCHA's bevatten een afbeelding met uitgerekte of wazige letters, cijfers of beide in een vak met een achtergrondkleur of transparante achtergrond. Vervolgens moet je de tekens identificeren en ze in het volgende tekstveld typen. Dit proces van tekens identificeren is eenvoudiger voor mensen, maar enigszins ingewikkeld voor een bot.

Het idee van het vervagen of vervormen van de CAPTCHA-tekst is om het moeilijker te maken voor de bot om de tekens te identificeren. Mensen daarentegen kunnen tekens in verschillende formaten interpreteren en onderscheppen, zoals verschillende lettertypen, handschriften, enz. Dat gezegd hebbende, niet elk mens kan een CAPTCHA bij de eerste poging oplossen. Volgens onderzoek zal 8% van de gebruikers bij de eerste poging een typefout maken, terwijl 29% faalt als de CAPTCHA's hoofdlettergevoelig zijn.

Aan de andere kant kunnen sommige geavanceerde bots vervormde letters onderscheppen met behulp van machinaal leren door de jaren heen. Als gevolg hiervan hebben sommige bedrijven zoals Google conventionele CAPTCHA's vervangen door geavanceerde CAPTCHA's. Eén zo'n voorbeeld is ReCAPTCHA dat je in de volgende sectie zult ontdekken.

Wat is een ReCAPTCHA?

ReCAPTCHA is een gratis dienst die Google aanbiedt. Het vraagt de gebruikers om vakjes aan te vinken in plaats van tekst te typen, puzzels op te lossen of wiskundevergelijkingen te maken.

Een typische ReCAPTCHA is geavanceerder dan conventionele vormen van CAPTCHAs. Het gebruikt echte afbeeldingen en teksten zoals verkeerslichten in straten, teksten uit oude kranten en gedrukte boeken. Hierdoor hoeven gebruikers niet te vertrouwen op ouderwetse CAPTCHA's met wazige en vervormde tekst.

Hoe werken ReCAPTCHA's?

Er zijn drie belangrijke soorten ReCAPTCHA-tests om te controleren of je een mens bent of niet:

Selectievakje

Dit zijn de ReCAPTCHA's die de gebruikers vragen om een selectievakje "Ik ben geen robot" aan te vinken, zoals in de afbeelding hierboven. Hoewel het met het blote oog lijkt dat zelfs een bot deze test zou kunnen voltooien, wordt er rekening gehouden met verschillende factoren:

  • Deze test onderzoekt de muisbewegingen van de gebruiker wanneer deze het selectievakje nadert.
  • De muisbewegingen van een gebruiker zijn niet recht, inclusief de meeste directe muisbewegingen. Het is een uitdaging voor een bot om hetzelfde gedrag na te bootsen.
  • Tot slot inspecteert de ReCAPTCHA de cookies die je browser opslaat.

Als de ReCAPTCHA er niet in slaagt om te verifiëren of je een mens bent, zal het je een andere uitdaging voorleggen.

Beeldherkenning

Deze ReCAPTCHA's geven gebruikers negen of zestien vierkante afbeeldingen zoals je kunt zien in de bovenstaande afbeelding. Elk vierkant vertegenwoordigt een deel van een grotere afbeelding of verschillende afbeeldingen. Een gebruiker moet vierkanten selecteren die specifieke objecten, dieren, bomen, voertuigen of verkeerslichten voorstellen.

Als de selectie van de gebruiker overeenkomt met de selecties van andere gebruikers die dezelfde test hebben uitgevoerd, wordt de gebruiker geverifieerd. Anders zal de ReCAPTCHA een moeilijkere test voorstellen.

Geen interactie

Wist je dat ReCAPTCHA kan verifiëren of je een mens bent of niet, zonder selectievakjes of gebruikersinteracties te gebruiken?

Dat doet het zeker door rekening te houden met de interactiegeschiedenis van de gebruiker met websites en het algemene gedrag van de gebruiker terwijl hij online is. In de meeste scenario's kan het systeem op basis van deze factoren bepalen of je een bot bent.

Als u dit niet doet, valt u terug op een van de twee eerder genoemde methoden.

Wat veroorzaakt CAPTCHA's en ReCAPTCHA's?

CAPTCHA's kunnen worden geactiveerd als een website ongebruikelijke activiteiten detecteert die lijken op botgedrag; dergelijk ongebruikelijk gedrag omvat onbeperkte aanvragen binnen enkele seconden en klikken op links in een veel hoger tempo dan mensen. 

Dan zouden sommige websites automatisch CAPTCHA's hebben om hun systemen af te schermen.

Wat de ReCAPTCHA's betreft, is het niet precies duidelijk waardoor ze worden geactiveerd. Algemene oorzaken zijn echter muisbewegingen, browsegeschiedenis en het bijhouden van cookies.

Dingen die u moet weten over het omzeilen van CAPTCHA's bij web scraping

Nu heb je een duidelijk overzicht van wat CAPTCHA's en Rechaptchas zijn, hoe ze werken en wat ze triggert. Nu is het tijd om te kijken hoe CAPTCHA's web scraping beïnvloeden.

CAPTCHA's kunnen het schrapen van het web belemmeren omdat de geautomatiseerde bots de meeste schraapbewerkingen uitvoeren. Laat je echter niet ontmoedigen. Zoals vermeld aan het begin van dit artikel, zijn er manieren om CAPTCHA's te omzeilen bij het scrapen van het web. Laten we, voordat we daar op ingaan, eerst eens kijken waar je op moet letten voordat je gaat scrapen.

Te veel aanvragen naar de doelwebsite sturen

Ten eerste moet je ervoor zorgen dat je web scraper/crawler niet te veel aanvragen in een korte periode verstuurt. De meeste websites hebben in hun algemene voorwaarden vermeld hoeveel aanvragen de website toelaat. Zorg ervoor dat je deze leest voordat je begint met scrapen.

HTTP-headers

Wanneer je verbinding maakt met een website, stuur je informatie over je apparaat naar de verbindende website. Zij kunnen deze informatie gebruiken om de inhoud aan te passen aan de specificaties van uw apparaat en metrische tracking. Dus als ze erachter komen dat de verzoeken van hetzelfde apparaat komen, wordt elk verzoek dat je daarna verstuurt geblokkeerd.

Dus als je de web scraper/crawler zelf hebt ontwikkeld, kun je de header-informatie wijzigen voor elk verzoek dat je scraper doet. Dan zou het op de doelwebsite lijken alsof het meerdere verzoeken ontvangt van verschillende apparaten. Lees hier voor meer informatie over HTTP-headers.

IP-adres

Een ander feit waar je je bewust van moet zijn is dat de doelwebsite je IP-adres niet op de zwarte lijst heeft gezet. Ze zullen je IP-adres waarschijnlijk wel op de zwarte lijst zetten als je te veel aanvragen verstuurt met je scraper/crawler. 

Om het bovenstaande probleem op te lossen, kun je een proxy server gebruiken, omdat deze je IP-adres maskeert. 

Het roteren van de HTTP-headers en proxies (meer hierover in de volgende sectie) met een pool zal ervoor zorgen dat meerdere apparaten toegang krijgen tot de website vanaf verschillende locaties. Je zou dus door moeten kunnen gaan met scrapen zonder onderbreking door CAPTCHAs. Dit gezegd zijnde, moet je ervoor zorgen dat je de prestaties van de website op geen enkele manier schaadt.

Je moet er echter rekening mee houden dat proxies je niet zal helpen om CAPTCHA's te overwinnen in registratie-, wachtwoordwijzigings-, uitcheckformulieren, enz. Het kan je alleen helpen om CAPTCHA's te omzeilen die websites triggeren omdat ze botgedrag vertonen. Om CAPTCHA's in zulke formulieren te vermijden, zullen we in een volgende sectie kijken naar CAPTCHA solvers.

Andere soorten CAPTCHA's

Naast de bovenstaande sleutelfactoren moet je de onderstaande CAPTCHAs kennen als je met een bot gaat webscrapen:

Honeypots-Honeypot is een soort CAPTCHA ingesloten in een HTML-formulierveld of link, maar de zichtbaarheid ervan is verborgen met CSS. Dus wanneer een bot ermee interageert, heeft hij onvermijdelijk gemeld dat hij een bot is. Dus voordat u uw bot de inhoud laat scrapen, moet u ervoor zorgen dat de CSS-eigenschappen van het element zichtbaar zijn.
Woord/Match CAPTCHA-Dit zijn de CAPTCHA's in wiskundevergelijkingen zoals het oplossen van "3+7," bijvoorbeeld. Er kunnen ook woordpuzzels zijn om op te lossen.
Aanmelden bij sociale media - Sommige websites vereisen dat je je aanmeldt met bijvoorbeeld je Facebook-account. Deze zijn echter niet populair omdat de meeste beheerders weten dat mensen niet graag inloggen met hun sociale media-accounts.
Tijd bijhouden-Deze CAPTCHA's controleren hoe snel je een specifieke actie uitvoert, zoals het invullen van een formulier om te bepalen of het een mens of een bot is.

Hoe CAPTCHA's omzeilen voor web scrapen

Draai proxies & gebruik IP-adressen van goede kwaliteit

Zoals vermeld in de vorige sectie, moet je proxies roteren telkens wanneer je een aanvraag stuurt naar de doelwebsite. Dit is één manier om CAPTCHA's te vermijden die afgaan tijdens het scrapen. In deze omstandigheden moet u schone residentiële IP proxies gebruiken.
Als je de proxies draait, zou het moeilijk zijn voor de doelwebsite om je IP-voetafdruk te bepalen. Dit komt omdat voor elk verzoek het IP-adres van proxieszou verschijnen in plaats van uw eigen IP-adres.

Gebruikersagenten roteren

Omdat je een scraper gebruikt voor web scraping, moet je de user agent vermommen tot een populaire webbrowser of ondersteunde bot-bots zoals zoekmachine-bots die websites herkennen.

Alleen de user-agent wijzigen is niet voldoende, je moet een lijst van user-agent strings hebben en deze vervolgens rouleren. Deze rotatie zal ertoe leiden dat de doelwebsite je als een ander apparaat ziet, terwijl in werkelijkheid één apparaat alle aanvragen verstuurt.

Als best practice voor deze stap zou het geweldig zijn om een database van echte user agents bij te houden. Verwijder ook de cookies wanneer je ze niet langer nodig hebt.

CAPTCHA-oplossingen

Een meer eenvoudige en technische methode om een CAPTCHA op te lossen is het gebruik van een CAPTCHA-oplosdienst. Zij maken gebruik van kunstmatige intelligentie (AI), machinaal leren (MI) en een combinatie van andere technologieën om een CAPTCHA op te lossen.

Enkele van de prominente CAPTCHA oplossers die momenteel in de industrie bestaan zijn Capsolver en Anti-CAPTCHA.

Als je je scraper elke fractie van een seconde rechtstreeks toegang laat krijgen tot een URL, zal de ontvangende website achterdochtig worden. Het resultaat is dat de doelwebsite een CAPTCHA activeert.

Om zo'n scenario te vermijden, zou je de referer-header zo kunnen instellen dat het lijkt alsof er vanaf een andere pagina wordt verwezen. Dit zou de kans verkleinen dat het als bot wordt gedetecteerd. Je kunt er ook voor zorgen dat de bot andere pagina's bezoekt voordat hij de gewenste link bezoekt.

Honeypots vermijden

Honeypots zijn verborgen elementen op een webpagina die beveiligingsexperts gebruiken om bots of indringers in de val te lokken. Hoewel de browser de HTML weergeeft, zijn de CSS-eigenschappen ingesteld op verborgen. In tegenstelling tot mensen is de code van de honingpot echter zichtbaar voor de bots wanneer ze de gegevens scrapen. Als gevolg daarvan liepen ze in de val die door de honeypot was opgezet.

Je moet er dus voor zorgen dat je controleert of de CSS-eigenschappen van alle elementen op een webpagina niet verborgen of onzichtbaar zijn voordat je begint te scrapen. Pas wanneer je zeker bent dat geen enkel element verborgen is, stel je je bot in om te scrapen.

Veelgestelde vragen

1. Wat betekent het omzeilen van CAPTCHA's voor Web Scraping?

CAPTCHA's omzeilen is simpelweg het proces van het verwijderen van de blokkades die ontstaan tijdens het scrapen van gegevens van verschillende sites. CAPTCHA's zijn ontworpen om te controleren of het webverkeer organisch is. 

2. Wat is ReCaptcha?

ReCaptcha beschermt je websites tegen spam en kwaadwillig botverkeer. Het genereert interactieve puzzels om organisch verkeer van botverkeer te onderscheiden.  

3. Hoe helpt een proxy gebruikers om Captcha's te omzeilen?

Als je webverzoeken terugstuurt van een bot of een scraping-oplossing, kunnen de CAPTCHA's gemakkelijk vaststellen dat het verkeer van een spammy bot afkomstig is. Als je dus een proxy adres van een proxy gebruikt, lijkt het meer op real-time verkeer. 

Conclusie

Dit artikel zou je een uitgebreid idee hebben gegeven over hoe je CAPTCHA's kunt vermijden tijdens het scrapen van het web. Het vermijden van een CAPTCHA kan een ingewikkeld proces zijn. Met het gebruik van specifieke technieken die in dit artikel zijn besproken, kun je de bot echter zo ontwikkelen dat CAPTCHA's worden vermeden.

We hopen dat je gebruik zult maken van alle technieken die in dit artikel worden besproken.