31. august 2010 - 11:52Der er
5 kommentarer og 1 løsning
Hvilken løsning ville i bruge til en crawler?
Hej derude... jeg har siddet og prøvet at lave en prototype af en crawler... Det fungere sådan set også, men jeg støder ind i problemer når det bliver lidt mere avanceret.
Jeg kan sagtens crawle en hjemmeside for alle links eller alle billeder... men når prøver at få enkelte elementer ud på en side bliver det lidt svært.
Forstil jer en hjemmeside hvor man kan søge på produkter. Jeg har taget et eksempel her på bøger. Det jeg vil havde ud er selvfølgelig billede, titel, forfatter, pris. HTML klumpen ser således ud:
Jeg har prøvet mig frem med preg_match_all men syntes det bliver alt for langhåret da som jeg kan forstå det så skal det regulære udtryk være ret specifikt.
Er der andre måder? Eller hvordan ville i løse sådan en opgave. Ydermere vil der være sidder som kun viser 10 produkter pr. side så der skal også crawles ind over de andre resultater... hvordan ville i gøre det?
- Og er vi enige om at man (hvis man skal ind over flere forskellige hjemmesider) skal havde en "profil" for hver side?
Hvad er årsagen til at du vil bruge crawler til sådan noget, når det nu er lige så nemt at spørge om de har et produktfeed tilgængeligt som du må anvende? Du skal alligevel have tilladelse til at gengive deres indhold.
Nu er det mere et proof of concept jeg har gang i, og for at prøve at lave en sådan løsning. Jeg er godt klar over de juridiske aspekter af sagen :)
Jeg vil til enhver tid fortrække produktfeeds, API, adgang til databasen osv... men det kan være der ville komme en aftale på plads med en som ikke kan tilbyde sådan en løsning.
Hvis du vil scrape selve kildekoden er regular expressions vejen frem, og ja, det kan hurtigt blive langhåret.
Det bliver endnu bedre når man endelig er færdig, og ejeren af siden så beslutter at en klasse f.eks. ikke skal hedde 'offer' men i stedet 'offer_download'. Så bryder det hele sammen, og man kan starte igen.
Du bør have en eller anden form for feed, hvis de ikke kan sætte noget ordenligt op, så i det mindste kommasepareret eller andet der er relativit pålideligt og frit for HTML markup.
At scrape kildekoden for den slags er sidste udvej, og bør undgås hvis overhovedet muligt.
Ja jeg er helt med på at det er sidste løsning... jeg er ikke skide stærk til regulære udtryk, men har dog rodet lidt med det... har du/i nogle bud på hvordan sådan et udtryk kunne se ud for at isolere informationerne fra den stump HTML jeg har smidt i toppen?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.