login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Flexibele spider maken

Offline dimb - 16/03/2012 21:34
Avatar van dimbNieuw lid Ik ben bezig met het maken van een flexibele spider voor het uitlezen van huizen websites. De bedoeling is dat er een interface komt waarbij de target page geladen wordt en de diverse elementen (oppervlakte/prijs) geselecteerd kunnen worden door middel van een Firebug-a-like selector. De spider zal vervolgens deze site crawlen om zo alle huizen/kamers uit te lezen en op te slaan. Het doel is een flexibele spider te maken waarbij er dus makkelijk meerdere sites toegevoegd kunnen worden, niet makkelijk 

Op dit moment ben ik zover:
Ik heb een Firebug look-a-like selector gemaakt die clicks registreert op elementen. Wordt er een element geselecteerd dan wordt de index van dit element uitgelezen. Bijvoorbeeld: als we weten dat de prijs zich in het 71e li element bevindt kunnen we het later makkelijk terug vinden. Ook andere pagina's van dezelfde site kunnen zo uitgelezen worden door steeds dit 71e li element te pakken.

Mijn vraag aan jullie is. Is dit de beste manier om dit probleem aan te pakken ( het terug halen van elementen op basis van hun index ). Op dit moment laadt de target page in een iframe waardoor ik met een omweg click events kan uitlezen van de firebug selector. Wat zijn jullie gedachtes.

1 antwoord

Gesponsorde links
Offline Maarten - 19/03/2012 10:44
Avatar van Maarten Erelid Ik zou het zo niet doen, als er plots een element wordt toegevoegd aan de navigatie (meestal een li) is het 'kapot'...

Als je gaat 'screen scrapen' zoals dat heet, zou ik eerder gaan kijken naar het dichtste element met een uniek kenmerk (een ID idealiter dus).

Bv. als de li in kwestie geen ID heeft, maar zijn parent UL wel, of de parent daarvan (een div bijvoorbeeld), dan kan je relatief vandaar gaan werken: div#blaat > ul > 5de li.

Dat kan je ook zo in string gaan bewaren (en dus in DB), het pad naar dat element. En dat is eenvoudig te doen met JavaScript (jQuery kan het al standaard), dus al dat je moet doen is iets zoeken die het ook kan in PHP (of even zelf maken, is ook zo moeilijk niet).

Of bedoelde je dat ook, dan zou ik het ook zo doen, ja 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.16s