Techniek achter bijvoorbeeld Jaap.nl

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • javami
  • Registratie: Januari 2006
  • Laatst online: 24-09-2021
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!

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 10:37
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.

Acties:
  • 0 Henk 'm!

  • Nijn
  • Registratie: Januari 2005
  • Laatst online: 15:07
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.

Acties:
  • 0 Henk 'm!

  • javami
  • Registratie: Januari 2006
  • Laatst online: 24-09-2021
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?

[ Voor 15% gewijzigd door javami op 17-05-2008 14:10 ]


Acties:
  • 0 Henk 'm!

  • Nijn
  • Registratie: Januari 2005
  • Laatst online: 15:07
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.

[ Voor 91% gewijzigd door Nijn op 17-05-2008 14:18 ]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17:13

Johnny

ondergewaardeerde internetguru

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


Acties:
  • 0 Henk 'm!

  • Bitage
  • Registratie: April 2006
  • Laatst online: 19-05-2024
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.
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?

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

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.
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.
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.
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.
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.
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?

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
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.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • javami
  • Registratie: Januari 2006
  • Laatst online: 24-09-2021
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 :)

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

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

[ Voor 44% gewijzigd door RaZ op 17-05-2008 15:46 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • AMDFreak
  • Registratie: Juni 2001
  • Laatst online: 13:45

AMDFreak

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.

9x Jinko 420Wp = 3780wp - Zuid 35


Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Bij het spideren van dergelijke website's moet je je echter wel realiseren dat je een heleboel data ophaalt. Het kan daarom zijn de de website jou blokeert vanwege het hoge dataverkeer. Een proxy is een manier om dit te vermijden. ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
vizion88 schreef op maandag 02 maart 2009 @ 16:22:
Bij het spideren van dergelijke website's moet je je echter wel realiseren dat je een heleboel data ophaalt. Het kan daarom zijn de de website jou blokeert vanwege het hoge dataverkeer.
Dat is altijd een risico dat je loopt en nogal wiedes slash open deur...
vizion88 schreef op maandag 02 maart 2009 @ 16:22:
Een proxy is een manier om dit te vermijden. ;)
Ja, want dan telt die data niet mee :? En daarmee probeer je ook nog eens beperkingen die opgelegd worden te omzeilen; iets wat we hier niet echt op prijs stellen (Beveiligingen omzeilen en andere vormen van (internet)misbruik).

Verder denk ik dat, bijna een jaar na dato, de TS er inmiddels wel uit is of mee klaar is ;)

[ Voor 5% gewijzigd door RobIII op 02-03-2009 16:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 21-09 15:23
Lijkt me dat dit niet mag of wel, je mag toch niet informatie van andere site's afcrawlen en dan zelf op je site plaatsen?

En als dit wel mag, tot hoever mag je hier dan mee door gaan? Want bijvoorbeeld de maker van de NS applicatie voor de iPhone die is benaderd door de NS dat ze het niet op prijs stelden.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Nijn
  • Registratie: Januari 2005
  • Laatst online: 15:07
ZpAz schreef op maandag 02 maart 2009 @ 18:00:
Lijkt me dat dit niet mag of wel, je mag toch niet informatie van andere site's afcrawlen en dan zelf op je site plaatsen?

En als dit wel mag, tot hoever mag je hier dan mee door gaan? Want bijvoorbeeld de maker van de NS applicatie voor de iPhone die is benaderd door de NS dat ze het niet op prijs stelden.
Dat moet je per situatie met een team juristen bekijken. Kunnen wij niet voor je beantwoorden. De NS dienstregeling zit gewoon copyright op. Het telefoonboek van de KPN ook. Maar dan nog heb je de moeilijkheid dat er hierover nog weinig zaken voor de rechter zijn geweest en er dus weinig jurisprudentie is.

[ Voor 10% gewijzigd door Nijn op 02-03-2009 20:03 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Btw, over het spideren van Jaap en rechtzaken van Jaap en Funda is toch wel zat te vinden ook. ;)

{signature}


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ZpAz schreef op maandag 02 maart 2009 @ 18:00:
Lijkt me dat dit niet mag of wel, je mag toch niet informatie van andere site's afcrawlen en dan zelf op je site plaatsen?
Hangt er nogal van af; in principe doet Google ook zoiets. Het is maar net hoe je het ziet en hoe je het toepast, doeleinden etc.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

RobIII schreef op maandag 02 maart 2009 @ 20:44:
[...]

Hangt er nogal van af; in principe doet Google ook zoiets. Het is maar net hoe je het ziet en hoe je het toepast, doeleinden etc.
Inwezen is het toch gewoon vrije content? Wanneer iets achter een gesloten deur zit, bijvoorbeeld d.m.v. een login systeem, kan ik mij voorstellen dat het verboden is.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Yeah right, copyright geldt enkel als je moet inloggen... :z

{signature}


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Idd, voor eMule en Torrents hoef ik ook niet in te loggen :')

zoek eens op citaatrecht, databankrecht auteursrecht etc. De site van Engelfriet is hierbij altijd een mooi begin: http://www.iusmentis.com/databanken/

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 21-09 15:23
vizion88 schreef op dinsdag 03 maart 2009 @ 08:58:
[...]


Inwezen is het toch gewoon vrije content? Wanneer iets achter een gesloten deur zit, bijvoorbeeld d.m.v. een login systeem, kan ik mij voorstellen dat het verboden is.
Lijkt me niet, ik mag toch ook niet de content van 9292OV zomaar gaan aanbieden op mijn site. De mensen daarachter hebben de informatie moeten verzamelen, op moeten schrijven e.d. En dan haal jij het met een geautomatiseerd systeem van hun site af.

Hetzelfde geld voor de sites waar Jaap het vandaan plukt, de mensen daarachter hebben er ook werk in gestoken, en nu is er iemand anders die het ook gaat aanbieden door het geautomatiseerd van hun site af te plukken.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 12-09 18:17
AMDFreak schreef op zaterdag 17 mei 2008 @ 16:09:
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.
Het leuke van zo'n XML feed is dat, in de meeste branches in ieder geval, lang niet het gehele aanbod van producten in de feed gezet wordt. Het is zelfs vaak zo dat júist de informatie die ze graag voor zichzelf houden, de informatie is die jij graag wilt hebben. Denk aan bijvoorbeeld last-minute reizen. Of de beste hardware aanbiedingen. Of die XML feed staat bijvoorbeeld vol met gesponsorde links (die jij natuurlijk niet wilt hebben). Hierdoor zijn de XML feeds vaak waardeloos. Niet helemaal - het is een begin - maar zeker niet het eind.

Vandaar het spideren dus.
Pagina: 1