post-titel

Wanneer u gegevens scraapt van grootschalige websites, is de kans het kleinst dat u niet geconfronteerd werd met een CAPTCHA om te bewijzen dat u een mens bent. Als webscraper weet u misschien al waarom cyberbeveiligingsprofessionals gedwongen waren ze uit te vinden. Ze waren een gevolg van uw bots die eindeloze websiteverzoeken automatiseerden om toegang te krijgen. Dus zelfs echte gebruikers moesten het hoofd bieden aan CAPTCHA's die in verschillende vormen verschijnen. U kunt echter CAPTCHA's omzeilen, of u 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. Door proxies te gebruiken bij de webverzoeken, worden gebruikers ook geholpen 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 vrij lange afkorting, 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.

Immers, een CAPTCHA onderscheidt mensen van bots en helpt cyberbeveiligingsanalisten webservers te beschermen tegen brute force attacks, DDoS, en in sommige situaties, web scraping. 

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

Hoe werken CAPTCHA's?

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

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

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

Anderzijds kunnen sommige geavanceerde bots met behulp van machinaal leren in de loop der jaren vervormde letters onderscheppen. Daarom hebben sommige bedrijven zoals Google conventionele CAPTCHAs vervangen door geavanceerde CAPTCHAs. Een dergelijk voorbeeld is ReCAPTCHA, dat u in de volgende paragraaf zult ontdekken.

Wat is een ReCAPTCHA?

ReCAPTCHA is een gratis dienst die Google aanbiedt. Het vraagt de gebruikers om vakjes aan te kruisen in plaats van tekst te typen, puzzels op te lossen of wiskundige vergelijkingen 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. Daardoor hoeven de gebruikers niet te vertrouwen op ouderwetse CAPTCHA's met wazige en vervormde tekst.

 CAPTCHA's en ReCAPTCHA's omzeilen

Hoe werken ReCAPTCHA's?

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

Checkbox

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

  • Deze test onderzoekt de muisbewegingen van de gebruiker bij het naderen van het aankruisvakje.
  • 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.
  • Tenslotte inspecteert de ReCAPTCHA de cookies die uw browser opslaat.

Als de ReCAPTCHA er niet in slaagt te verifiëren dat u een mens bent, stelt hij u voor een andere uitdaging.

Beeldherkenning

Deze ReCAPTCHA's geven gebruikers negen of zestien vierkante afbeeldingen, zoals u 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. Zo niet, dan stelt de ReCAPTCHA een moeilijker test voor.

Geen interactie

Wist u dat ReCAPTCHA kan controleren of u een mens bent of niet, zonder gebruik te maken van selectievakjes of enige gebruikersinteractie?

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

Gebeurt dat niet, dan wordt teruggevallen op een van de twee eerder genoemde methoden.

Wat veroorzaakt CAPTCHA's en ReCAPTCHA's?

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

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

Het is niet precies duidelijk wat de ReCAPTCHA's veroorzaakt. Algemene oorzaken zijn echter muisbewegingen, browsergeschiedenis en het bijhouden van cookies.

Wetenswaardigheden over het omzeilen van CAPTCHA's bij web scraping

Nu hebt u 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. Raak echter niet ontmoedigd. Zoals vermeld aan het begin van dit artikel, zijn er manieren om CAPTCHA's te overwinnen bij het scrapen van het web. Laten we, voordat we daar op ingaan, eerst eens kijken waar u op moet letten voordat u gaat scrapen.

Te veel verzoeken naar de doelwebsite sturen

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

HTTP-headers

Wanneer u verbinding maakt met een website, stuurt u informatie over uw 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 afkomstig zijn, wordt elk verzoek dat u daarna stuurt geblokkeerd.

Dus, als u de webscraper/crawler zelf hebt ontwikkeld, kunt u de header-informatie wijzigen voor elk verzoek dat uw 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 waarvan u zich bewust moet zijn, is dat de doelwebsite uw IP-adres niet heeft geblacklist. Ze zullen je IP-adres waarschijnlijk wel op de zwarte lijst zetten als je te veel aanvragen stuurt met je scraper/crawler. 

Om het bovenstaande probleem op te lossen, kunt u een proxy server gebruiken, omdat die uw 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 vanaf verschillende locaties toegang krijgen tot de website. U zou dus door moeten kunnen gaan met scraping zonder onderbreking van CAPTCHAs. U moet er wel voor zorgen dat u de prestaties van de website op geen enkele manier schaadt.

U moet echter weten dat proxies u niet zal helpen CAPTCHA's te overwinnen in de registratie, wachtwoordwijziging, uitcheckformulieren, enz. Het kan u alleen helpen bij het overwinnen van captures die websites teweegbrengen door botgedrag. Om CAPTCHA's in dergelijke formulieren te vermijden, zullen we in een volgende sectie kijken naar CAPTCHA solvers.

Andere soorten CAPTCHA's

Naast de bovenstaande sleutelfactoren moet u de onderstaande CAPTCHA's kennen wanneer u 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.

captcha's omzeilen

Word/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.

Social Media sign-in - Sommige websites vereisen dat u zich aanmeldt met bijvoorbeeld uw Facebook-account. Die zijn echter niet populair omdat de meeste beheerders weten dat mensen niet graag inloggen met hun sociale media-accounts.

Time tracking-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 voor Web Scraping omzeilen

Hoe CAPTCA's omzeilen - 5 eenvoudige stappen

Draai proxies & gebruik IP-adressen van goede kwaliteit

Zoals vermeld in de vorige sectie, moet u proxies roteren telkens wanneer u een verzoek stuurt naar de doelwebsite. Dit is één manier om CAPTCHA's te vermijden die afgaan terwijl u schraapt. In deze omstandigheden moet u schone residentiële IP proxies gebruiken.

Wanneer u de proxies draait, zou het voor de doelwebsite moeilijk zijn om uw IP-voetafdruk te bepalen. Dit komt omdat bij elk verzoek het IP-adres van proxieszou verschijnen in plaats van uw eigen adres.

Gebruikersagenten draaien

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

Alleen de user-agent veranderen zal niet voldoende zijn, want u moet een lijst van user-agent strings hebben en die vervolgens rouleren. Deze rotatie zal ertoe leiden dat de doelwebsite u als een ander apparaat ziet, terwijl in werkelijkheid één apparaat alle verzoeken verzendt.

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

CAPTCHA-oplossingen

Een meer eenvoudige, lage technische methode om een CAPTCHA op te lossen is het gebruik van een CAPTCHA-oplosdienst. Zij gebruiken Kunstmatige Intelligentie (AI), Machine Learning (MI) en een culminatie 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.

Wanneer u uw scraper elke fractie van een seconde rechtstreeks toegang geeft tot een URL, dan zou de ontvangende website argwaan krijgen. Daardoor zou de doelwebsite een CAPTCHA activeren.

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. Dat zou de kans verkleinen dat hij als bot wordt gedetecteerd. Een andere mogelijkheid is 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 op verbergen ingesteld. In tegenstelling tot mensen zou de code van de honingpot echter zichtbaar zijn voor de bots wanneer zij de gegevens scrapen. Daardoor liepen ze in de val die door de honeypot was gezet.

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

Vaak gestelde vragen

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

CAPTCHA's omzeilen is gewoon het proces van het verwijderen van de blokkades die ontstaan bij het schrapen van gegevens van talrijke sites. CAPTCHA's zijn ontworpen om te controleren of het webverkeer organisch is. 

2. Wat is ReCaptcha?

ReCaptcha beschermt uw websites tegen spams en kwaadaardig botverkeer. Het genereert interactieve puzzels om organisch verkeer van botverkeer te onderscheiden.  

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

Wanneer u webverzoeken terugstuurt van een bot of een schraapoplossing, kunnen de CAPTCHA's gemakkelijk vaststellen dat het verkeer van een spammy bot afkomstig is. Dus door een proxy adres van een proxy te gebruiken, lijkt het meer op real-time verkeer. 

Conclusie

Dit artikel zou u een uitgebreid idee hebben gegeven van hoe CAPTCHA's te vermijden tijdens het scrapen van het web. Het vermijden van een CAPTCHA kan een ingewikkeld proces zijn. Echter, met het gebruik van specifieke technieken besproken in dit artikel, kunt u de bot ontwikkelen op een zodanige wijze dat CAPTCHA's worden vermeden.

Wij hopen dat u gebruik zult maken van alle in dit artikel besproken technieken.