Hoofdcategorieën
Topicacties

Techniek achter bijvoorbeeld Jaap.nl

Pagina: 1

Reageer Nieuw Topic
Berichten: 71
Reg. datum: 02 januari 2006

In verband met een onderzoeksopdracht voor mijn studie ben ik aan het onderzoeken hoe een site als Jaap.nl werkt. Ik weet dat er door spider scripts websites worden gespiderd en de informatie dan getoond wordt op Jaap.nl
Nu heb ik begrepen dat voor elke site die Jaap spidert een apart script wordt geschreven? Ik vraag me nu dan af hoe dit wordt gedaan, is het een soort van hacken wat het script doet? Wat maakt het verschil waarvoor de spider moet worden geschreven, dat zal met de sitestructuur te maken hebben maar hoe wordt dit dan bepaald?

Ik neem aan dat websites geen toestemming geven aan Jaap.nl om de structuur van hun site prijs te geven. En wanneer deze informatie dan wordt opgehaald wordt dit neem ik aan in een eigen database weggeschreven waar Jaap dan weer de gewilde informatie uit ophaalt?
En draait zo'n spider dan 24/7 of wordt er 1 keer per dag gereindext? Wordt de hele site dan opnieuw nageplozen of alleen de wijzigingen?

Een heleboel vragen dus en ik hoop dat iemand met ervaring hiermee mij enkele antwoorden kan geven! Bedankt alvast!
 
CiPHER

Jaap spidert andere websites. Die informatie op die andere websites wordt steeds anders weergegeven.
Op de ene site is een objectprijs getoont als
HTML:
1
<strong>Prijs</strong> &euro, 1,234.67

Op een andere site als
HTML:
1
<table><tr><th>Prijs</th><td>1,234.56</td></tr></table>

Etc.

Per site moet de spider dus naar andere gegevensblokken kijken. Welke gegevensblokken dat zijn kun je gewoon zien door de HTML-broncode van een pagina te bekijken.

Pain does not hurt

Berichten: 1.373
Reg. datum: 24 januari 2005

Het valt me op dat je vrij weinig over spiders weet. Ik zou daar eerst is naar gaan kijken.
Zo'n spider gedraagt zich gewoon als mens wat betreft het sitebezoek. Het hacked niet de database ofzo. Hij gaat gewoon de pagina's en links af en slaat op wat ie tegenkomt.

Zo'n spider laat je natuurlijk niet 24/7 draaien, zou veels te veel dataverkeer kosten. Maar dat hangt natuurlijk ook af van welke functies een site heeft. Als zo'n site alle adds van maximaal een dag oud kan weergeven is het natuurlijk makkelijk en hoef je niet de hele site af te struinen naar nieuwe adds.
Berichten: 71
Reg. datum: 02 januari 2006

Ik denk dat ik wel begrijp wat een spider doet, maar ik vroeg me af hoe Jaap omgaat met verschillende sites die waarschijnlijk een hun best doen de informatie af te schermen voor spiders.
Maar ik ben zeer benieuwd naar hoe je nu een spider schrijft, ik heb wel de kant en klare spiders gevonden zoals Phpdigg en Sphider maar die kunnen bijvoorbeeld Jaap.nl niet spideren.
Zijn er ook sites die niet gespiderd kunnen worden? En kan iemand mij vertellen waar ik goede informatie vandaan haal voor het programmeren van een spider?

Stel ik wil Jaap.nl spideren en een aparte pagina voor mezelf maken waar ik elke dag het nieuwe aanbod in Groningen terug kan vinden. Is dit te realiseren? Of wordt dit een erg complex verhaal?

javami wijzigde dit bericht 17-05-2008 14:10 (15%)

 
Berichten: 1.373
Reg. datum: 24 januari 2005

Mag ik vragen waarvoor dit is?

Welke programeerervaring heb je?

De naam spider is niets anders dan een verzamelnaam voor software die geschreven is om pagina's te downloaden en te analyseren.

Een spider zal dus bijvoorbeeld de volgende pagina opvragen: "http://www.site.nl/overzichtspagina.php?categorie=ouwe shit". Daarin staan 30 links naar advertenties binnend ie categorie en onderaan staat een "next" link voor nog 30. Zo'n spider verzameld dus de 30 links en download dan de pagina waar d'r nog 30 staan. Daarmee blijft hij doorgaan totdat ie alle links heeft. Vervolgens gaat ie stuk voor stuk de pagina's van de verkregen links downloaden en de inhoud analyseren.

Nijn wijzigde dit bericht 17-05-2008 14:18 (91%)

ondergewaardeerde internetguru
Berichten: 6.050
Reg. datum: 30 december 2001

quote:
javami schreef op zaterdag 17 mei 2008 @ 13:53:
In verband met een onderzoeksopdracht voor mijn studie ben ik aan het onderzoeken hoe een site als Jaap.nl werkt. Ik weet dat er door spider scripts websites worden gespiderd en de informatie dan getoond wordt op Jaap.nl
Nu heb ik begrepen dat voor elke site die Jaap spidert een apart script wordt geschreven? Ik vraag me nu dan af hoe dit wordt gedaan, is het een soort van hacken wat het script doet?
Nee het is geen hacken, een robot zoals spiders tegenwoordig vaker genoemd worden gedraagd zich net als een bezoeker met een webbrowser, de pagina wordt via een HTTP-verbinding opgehaald, maat in plaats van dat deze verwerkt wordt door een browser wordt de pagina verwerkt door het script dat voor die pagina van toepassing is.
quote:
Wat maakt het verschil waarvoor de spider moet worden geschreven, dat zal met de sitestructuur te maken hebben maar hoe wordt dit dan bepaald?
De informatie is op iedere website op een andere manier ingedeeld. In je eigen database moeten de gegevens vanuit de verschillende bronnen wel allemaal op dezelfde manier worden ingedeeld.

Het script bevat dus een aantal regels die bepaalde stukjes informatie zoals een prijs, adres of een link er uit filteren. Die regels zijn handmatig opgesteld door een programmeur die de structuur van die pagina's heeft geanalyseerd. Dan zie je bijvoorbeeld dat de prijs altijd tussen <span class="price"> en </span> staat, dan schrijf je een regel om de tekst die daar tussen staat er uit te filteren en in een variable op te slaan. Vaak moet de inhoud ook nog gevalideerd worden of vertaald, zo mag een prijs enkel nummers bevatten en bevat deze soms nog komma's of punten die je weg moet halen. Ook datums worden op vele verschillende manieren weergegeven en moeten daarom worden omgezet naar een uniform formaat.
quote:
Ik neem aan dat websites geen toestemming geven aan Jaap.nl om de structuur van hun site prijs te geven.
De interne databasestructuur is afgeschermd en als de gegevens niet op een andere manier worden aangeboden, bijvoorbeeld doormiddel van een API of XML-feed dan blijft alleen de HTML van de pagina's zelf over, daar zit meestal wel genoeg structuur in om de benodigde gegevens aan te onttrekken, het is alleen iets omslachtiger, maar dat is een eenmalige inspanning.
quote:
En wanneer deze informatie dan wordt opgehaald wordt dit neem ik aan in een eigen database weggeschreven waar Jaap dan weer de gewilde informatie uit ophaalt?
En draait zo'n spider dan 24/7 of wordt er 1 keer per dag gereindext? Wordt de hele site dan opnieuw nageplozen of alleen de wijzigingen?
Hoe een spider werkt dat is afhankelijk van hoeveel pagina's hij moet indexeren. Googlebot draait bijvoorbeeld dag en nacht door omdat er altijd wel nieuwe pagina's te vinden zijn. Robots die maar enkele sites moeten bezoeken werken vaak doormiddel van een cron job, die een keer per dag wordt uitgevoerd waarbij alle benodigde pagina's worden opgehaald en verwerkt.

Als een pagina nog niet in de database aanwezig is dan is hij nieuw en moet hij dus worden opgehaald. Het is vaak onmogelijk om te zien of een pagina gewijzigd is voordat hij is opgehaald. Aan de Last-modifified header zou de robot moeten kunnen zien wanneer die pagina is gewijzigd, maar die klopt vaak niet voor dynamisch gegenereerde pagina's, en het kost nog steeds een request, ook al wordt de inhoud van de pagina zelf niet opgehaald.

In de praktijk moet je dus een afweging maken tussen hoe accuraat de gegevens moeten zijn en hoe vaak je verwacht dat de gegevens veranderen om te bepalen hoe vaak je de pagina's wilt controleren.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.

Powered by electrons
Berichten: 1.550
Reg. datum: 23 april 2006

Je kan bij Jaap.nl in eerste instantie niet direct de gegevens uit de broncode halen, daar dit d.m.v. AJAX gebeurt. Je zult dus óf hun javascript moeten reverse engineren óf een andere oplossing moeten bedenken.
quote:
In verband met een onderzoeksopdracht voor mijn studie ben ik aan het onderzoeken hoe een site als Jaap.nl werkt.
Ik denk dat als je de mensen achter Jaap.nl benadert zij misschien wel het een en ander willen vertellen? Heb je dus al contact met hun opgezocht?

Pick my Icon!
Specs: Game PC
"Everything that can go wrong, will go wrong" -Murphy's Law

Berichten: 5.553
Reg. datum: 12 november 2000

quote:
javami schreef op zaterdag 17 mei 2008 @ 14:07:
Ik denk dat ik wel begrijp wat een spider doet
Dat je begrijpt wat ie doet, is 1 ding. Kennis van spiders en websites is wel een must om het door te hebben.
quote:
maar ik vroeg me af hoe Jaap omgaat met verschillende sites die waarschijnlijk een hun best doen de informatie af te schermen voor spiders.
Ik gok dat ze 1 spider hebben. Ze halen gewoon de hele pagina op, en adhv de site, komen er routines om de hoek kijken waar de informatie staat die ze zoeken.
Zodra je de inhoud van een pagina hebt (wat een spider dus doet), heb je die info. Dan is het enkel een kwestie van filteren.
quote:
Maar ik ben zeer benieuwd naar hoe je nu een spider schrijft, ik heb wel de kant en klare spiders gevonden zoals Phpdigg en Sphider maar die kunnen bijvoorbeeld Jaap.nl niet spideren.
Je antwoord dus al zelf op de vraag. Het kan zijn dat jaap de useragent gewoon niet toestaat op hun site. Jaap beveiligd het dus.
quote:
Zijn er ook sites die niet gespiderd kunnen worden?
Ja hoor. Legio.. Maar dan moet je wel kennis hebben van HTML, en spiders, en dat heb je niet.
quote:
En kan iemand mij vertellen waar ik goede informatie vandaan haal voor het programmeren van een spider?
Als je HTML kent, en kan programmeren, kan je een spider maken.
quote:
Stel ik wil Jaap.nl spideren en een aparte pagina voor mezelf maken waar ik elke dag het nieuwe aanbod in Groningen terug kan vinden. Is dit te realiseren? Of wordt dit een erg complex verhaal?
Ja dat is te realiseren. Of dat complex is, geen idee, wat is jouw programmeer kennis, en je kennis van HTML?

Een dakloze vrouw uitwonen, da's nooit grappig...
Ik ben tegen zinloos geweld, en als je me niet gelooft, sla ik je voor je bek..


Acties: [view][quote]


Door: RobIII
Moderator PRG/SEA/WEB
Papa van LucaIII \o/

quote:
RaZ schreef op zaterdag 17 mei 2008 @ 14:26:
Je antwoord dus al zelf op de vraag. Het kan zijn dat jaap de useragent gewoon niet toestaat op hun site. Jaap beveiligd het dus.
Dat is geen beveiliging :X Een useragent is niks anders dan een HTTP Request header en daar kun je net zo vrolijk in zetten wat je wil; laat je PERL script (bijvoorbeeld) dus gewoon lekker MSIE 6.0 sturen en je bent er.

We all get along with some glue and duct tape here and there - but when the sh*t hits the fan, don’t blame the duct tape.

Trotse papa van Luca! | Pick My Icon!

Berichten: 71
Reg. datum: 02 januari 2006

Bedankt voor jullie reacties zo ver! Ik zit nu op mijn werk maar zal vanavond de antwoorden doornemen!
Wel vraag ik me af of het met alleen HTML te realiseren is Raz? Je gaat er vanuit dat ik geen HTML kan lees ik :) Nu kan ik dat wel en heb ik ook wel basis kennis van PHP en MySQL dus ik ga er zowieso mijn best voor doen.
Het is voor mij meer de vraag in hoeverre dit complex is, als ik lees dat Jaap meerdere spiders heeft die elk afzonderlijk werken en geprogrammeerd zijn heb ik het idee dat dit niet door iemand met enige kennis van HTML te creeeren is maar shoot me if im wrong :)
 
Berichten: 5.553
Reg. datum: 12 november 2000

Ik zeg ook nergens dat de inhoud van een useragent string iets met beveiliging te maken heeft. Dat een useragent makkelijk te faken is, is wel algemeen bekend.

Het kan wel als een extra'tje gebruikt worden voor spiders als google, msn, yahoo etc.. Spiders die zich houden aan de response. Maar als je een jat-spider inzet, heb je daar natuurlijk als maker kompleet lak aan.

De techniek achter een site als jaap is gewoon simpel. Je download een spider, en je laat zo'n ding lekker z'n ding doen. Daarna een aantal filters er bij, en klaar (even grof weg gezegd).

Ook een site als jaap.nl is spiderbaar, alleen moet je dan wel een spider hebben die ajax ondersteund.

Het is gewoon een feit dat geen enkele beveiliging 100% waterdicht is. Je kan het men wel zo moeilijk mogenlijk maken, maar alles is te omzeilen.
quote:
javami schreef op zaterdag 17 mei 2008 @ 15:16:
[..]
Wel vraag ik me af of het met alleen HTML te realiseren is Raz?
Nope. HTML is geen programmeer/script-taal. Het parsen/verwerken van de data bij een spider-run ontbreekt dan.
quote:
Je gaat er vanuit dat ik geen HTML kan lees ik :) Nu kan ik dat wel en heb ik ook wel basis kennis van PHP en MySQL dus ik ga er zowieso mijn best voor doen.
Ah.. dan weet je dus precies wat een spider doet, gewoon pagina's ophalen, en ergens opslaan voor verwerking :P
quote:
Het is voor mij meer de vraag in hoeverre dit complex is, als ik lees dat Jaap meerdere spiders heeft die elk afzonderlijk werken en geprogrammeerd zijn heb ik het idee dat dit niet door iemand met enige kennis van HTML te creeeren is maar shoot me if im wrong :)
Dat zou kunnen, maar het lijkt mij meer logisch om 1 spider te gebruiken om een pagina op te vragen, en het door verschillende parsers te ontleden. Althans, zo zou ik het doen.

Op het moment dat een site dan de lay-out aanpast, kan je de spider blijven gebruiken, en hoef je enkel de juiste parser aan te passen.

En in hoeverre dat complex is, dat ligt aan de kennis die je hebt. Ik vind dingen complex die andere koek en ei vinden, en andersom.

RaZ wijzigde dit bericht 17-05-2008 15:46 (44%)

Een dakloze vrouw uitwonen, da's nooit grappig...
Ik ben tegen zinloos geweld, en als je me niet gelooft, sla ik je voor je bek..

Intel is zo..

RealWorks is het database systeem voor alle NVM Makelaars.
Via een XML koppeling kan een makelaar z'n eigen woningaanbod zo neerzetten zoals hij dat wilt.

Hoe dat spideren in elkaar steekt, daar wil ik me liever niet in verdiepen.

FPN Assurantiën tussenpersoon Zoetermeer - www.fpnassurantien.nl

Pagina: 1



VNU Media logo Powered by True

© 1998 - 2008 Tweakers.net - Alle rechten voorbehouden

Uitgever van: