Spiders

Van VBI8 Wiki Over Search

Ga naar: navigatie, zoek

Inhoud

[bewerk] Inleiding

Een zoekmachine is in het bezit van een database met informatie over pagina’s. In het kader van deze informatie kan je denken aan meta-informatie maar ook bijvoorbeeld aan tellingen van de woorden binnen een pagina en hoe vaak specifieke woorden voorkomen in vergelijking met andere woorden. Als je zoekt met een zoekmachine ga je niet het internet afzoeken maar zoek je in principe binnen de hierboven besproken database naar verwijzingen naar bronnen die te maken hebben met je zoekopdracht. Om die betreffende database te vullen met gegevens moeten er webpagina’s zijn om te indexeren en te ontsluiten, en dat is waar de spider te voorschijn komt.

[bewerk] Geschiedenis van Spiders

Om te kijken naar de oorsprong van de spider moeten we terug naar het begin van het internet waar met name gebruik werd gemaakt van het File Transfer Protocol, ofwel FTP om bestanden te kunnen uitwisselen tussen verschillende met elkaar verbonden pc’s binnen een netwerk. Hierbij kon een beheerder van een pc ervoor kiezen om bestanden beschikbaar te maken aan derden en daarvoor een zogenaamde FTP-server opzetten. De bestanden binnen de FTP-server konden vervolgens aangesproken en achterhaald worden met een FTP-client, waarbij er een directe verbinding tot stand werd gebracht om zo de bestanden over te sturen. Naar mate meer mensen gebruik gingen maken van deze mogelijkheid kwamen er een groot aantal anonieme FTP-servers waarop informatie kon staan en waar iedereen bestanden op kon plaatsen en vanaf kon halen. Het vinden van bestanden op deze sites was vrij lastig en meestal gebeurde het alleen wanneer iemand op een forum of via mail aankondigde dat een file met een bepaalde naam op een bepaalde FTP-server stond en eraf te halen was. Dit heeft geleid tot de ontwikkeling van “Archie” in 1990 door “Alan Emtage” een student aan de McGill Universiteit in Montreal. Archie was de eerste daadwerkelijke zoekmachine en bestond uit een op een script gebaseerde gegevensverzamelaar die lijsten opzocht van FTP-servers en binnen die servers alle bestanden door keek en indexeerde om terug te kunnen vinden. Archie was dus daadwerkelijk de eerste spider die geautomatiseerd en methodisch door het internet heen zocht en gegevens ontsloot om deze vindbaar te maken. Vanuit Archie zijn de ontwikkelingen snel gegaan wat betreft spiders, eerst waren het met name heel specifieke programma’s om een type gegevens op een specifieke locatie of lijst van locaties te vinden en te achterhalen. Zo was bijvoorbeeld Veronica om zogenaamde “Gopher’s” te vinden en te ontsluiten die gebaseerd was op dezelfde code maar een ander doel had. Waar Archie en Veronica nog menselijke input nodig hadden om aan te geven waar gezocht en ontsloten moest worden en heel specifiek alleen binnen die input zochten, was Wanderer die iets daarna geschreven werd de eerste echte robot op het internet. Wanderer was oorspronkelijk bedoeld om de groei van het internet te onderzoeken. Oorspronkelijk was het enige wat Wanderer deed het tellen van webservers, maar kort na zijn lancering hebben ze hem url’s laten opslaan waar hij langs kwam. De database waar hij die url’s in opsloeg werd Wendex genoemt en was de basis voor de eerste echte algemene zoekmachines.

[bewerk] Werking van Spiders

Er zijn veel verschillende spiders, en er zijn binnen de bestaande spiders heel veel verschillende strategieën om nieuwe bronnen te vinden om te ontsluiten en te indexeren. Wanneer we kijken naar het functioneren van een spider kunnen we niet per spider of per soort spider afzonderlijk alle stappen beschrijven waarlangs zijn weg loopt om gegevens te achterhalen. We kunnen hier echter wel in zijn algemeenheid op ingaan om te laten zien hoe een spider zijn werk doet en beslissingen neemt aangaande de bronnen die hij achterhaalt en ontsluit. Maar allereerst wil ik daarbij even aanstippen dat voor het selecteren van bronnen over het algemeen vier verschillende strategieën gehanteerd worden. Namelijk: Path-ascending crawling, dit is het crawlen waarbij zo veel mogelijk inhoud en bronnen van een website af wordt gehaald, hierbij werd er als het ware een website geoogst. Focused Crawling, hierbij probeert een spider web pagina’s te vinden en te indexeren die overeenkomsten met elkaar hebben om op die wijze te selecteren wat bij elkaar hoort. Deep web crawling, een aantal pagina’s liggen verstopt in het zogenoemde “deep web”, hierbinnen ligt nog veel niet ontsloten informatie en er zijn spiders die met name proberen om die informatie te vinden en te ontsluiten. Wanneer een spider aan het werk wordt gezet gaat hij een lijst met url’s langs vanwaar hij alle verwijzingen van en naar die desbetreffende url’s langsloopt. De url’s die weer verwijzen naar de desbetreffende starturl, of van de starturl af wordt vervolgens aan de lijst toegevoegd om op een later tijdstip te bezoeken en weer overnieuw te analyseren. De spider gaat dus als het ware vanuit het midden van zijn web alle draadjes langs om te kijken waar er een verbinding aan vast zit en wat er zich op die verbinding bevindt. Hierbij wordt alles wat hij vindt weer een nieuw startpunt om vanuit verder te kijken. Wanneer hij een nieuwe link gevonden heeft zal het afhangen van het type en soort spider wat hij gaat doen, of hij de pagina zelf indexeert of alleen een bepaalde verwijzing noteert om later door een andere spider te laten indexeren. Of dat hij er een exacte kopie van maakt of alleen kijkt of de pagina is veranderd sinds zijn vorige bezoek.

[bewerk] Hoe verdedigen

Maar hoe gaat dat dan in zijn werk, het verdedigen tegen spiders en het voorkomen dat een spider al dan niet met goede bedoelingen langskomt en de informatie die op je webpagina staat leest en indexeert. Veel webrobots geven webbeheerders mogelijkheden om te voorkomen dat een webpagina geïndexeerd word, hierbij wordt met name gebruik gemaakt van twee technieken, namelijk: de robot exclusion protocol de robot meta tag spider traps

[bewerk] Robots.txt

Allereerst kijk ik naar de robot exclusion protocol, dit protocol kan worden toegevoegd als het “robots.txt” bestand in de root van een webpagina en bevat informatie over wat wel en niet gedaan mag worden door een robot wanneer hij een webpagina bezoekt. Hierbij wordt aangegeven welke subfolders binnen de root niet mogen worden doorzocht door deze te disallowen. Zo kan een robots.txt bestand er bijvoorbeeld zo uit zien: User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /~prive/ In dit voorbeeld geef je aan alle mogelijke spiders die je pagina bezoeken aan dat ze de gegevens in de cgi-bin, tmp en ~prive folders niet mogen doorzoeken. Je kan behalve specifieke folders uit te sluiten ook aangeven dat specifieke files niet mogen worden gelezen door de specifieke files aan te geven inclusief het volledige path binnen je website waarbinnen ze te vinden zijn. Verder kan je met de robots.txt file aangeven dat een of meer specifieke spiders geen rechten hebben om informatie binnen je webpagina te zoeken en te ontsluiten, dit kan gedaan worden door een specifieke robotnaam aan te geven als user-agent. Tot slot kan je voorkomen dat wat dan ook binnen je site gespiderd wordt door aan te geven dat alle robots niks mogen doorzoeken dat binnen je root “/” gevonden wordt.

[bewerk] De Robot Metatag

Een andere manier om te voorkomen dat je gespiderd wordt is de zogenoemde robot metatag, dit wordt echter maar door een beperkt aantal robots ondersteund. In principe kan de robots metatag binnen een html pagina worden gebruikt om aan te geven wat de robot wel en niet mag op het moment dat hij op de pagina komt. Hierbij kan je aangeven of een robot al dan niet de gegevens op de pagina mag indexeren of laten indexeren, en of deze eventuele links op de pagina al dan niet mag volgen. Ter voorbeeld <meta name="voorbeeld" content="index,follow">, hierbij mag de spider binnen de site voorbeeld alle inhoud indexeren en eventuele aanwezige verwijzingen volgen <meta name="voorbeeld" content="noindex,follow">, hierbij mag de spider binnen de site niks indexeren, maar als er verwijzingen op staan naar andere pagina’s mag de spider deze niet volgen. <meta name="voorbeeld" content="index,nofollow">, hierbij mag de spider wel alles wat er op de pagina staat aan informatie indexeren, maar het is niet toegestaan om eventuele links die erop staan ook te volgen naar andere pagina’s <meta name="voorbeeld" content="noindex,nofollow">, tenslotte mag bij deze variant de spider zowel niks indexeren als geen links die op de pagina gevonden worden volgen naar andere pagina’s

[bewerk] De Spider Trap

Het is ook mogelijk om spiders te vangen met een zogenaamde “spider trap”, dit is een manier om slecht geconstrueerde spiders te laten crashen of in een loop te laten komen. Dit kan op drie verschillende manieren gedaan worden. Je kan dynamische structuren maken zoals bijvoorbeeld een kalender met oneindige hoeveelheden pagina’s voor een crawler om te kunnen vinden. Je kan door grote hoeveelheden verschillende karakters op een pagina de parser laten crashen. Voor spiders die goed geschreven zijn zullen deze spider traps geen probleem opleveren omdat deze veelal zullen wisselen tussen hosts en niet teveel documenten aanroepen achter elkaar bij dezelfde host waardoor dit niet zal werken.

[bewerk] Effectiviteit van verdediging

Hoe effectief is het gebruik van de bovenstaande twee methodes nu eigenlijk, gezien het feit dat beide technieken afhankelijk zijn van medewerking van de spider. In principe is het zo dat de meeste officiële spiders van zoekmachines wel ondersteuning bieden voor de robots.txt file of de robot metatag. Het gaat echter mis wanneer een van de eerder besproken kwaadwillende spiders of een zelfgemaakte spider langskomt, wanneer de robot code niet specifiek ondersteunt dat hij zich moet houden aan de regels die staan binnen de robots.txt file of de robot metatag dan zal hij evengoed de links volgen en alles indexeren wat hij tegenkomt. Als je daartegen je gegevens wil beschermen dan is het het beste om te werken met authenticatie en encryptie van je gegevens. De robots.txt file en de robot metatag zijn in principe alleen bordjes die aangeven dat iemand geen toegang heeft en geen gesloten deuren om het echt te voorkomen. Wanneer een spider volgens de regels speelt zal hij het respecteren zo niet is het nutteloos.

[bewerk] Externe informatie

A history of search engines
Auteur: W. Sonnenreich
URL: http://www.wiley.com/legacy/compbooks/sonnenreich/history.html
Formaat: WWW Taal: Engels Datum aanmaak: 1997 Datum wijziging: Onbekend
Trefwoorden: Crawlers; spiders; robots; automated scripts; spidering; crawling; internet; browse; website; URL; Search engine
Motivatie: Document waarin duidelijk te historie van zoekmachines en de bijbehorende spiders wordt beschreven vanaf het eerste begin met archie
Aspecten/acties
Persoonlijke instellingen
content beleid
About us