Teknologi for crawling av nettsider

Kenneth Dreyer

Well-Known Member
Hei,

Sitter med en ide til en applikasjon som holder oversikt over nettsiden din. Kort sagt, så vil crawleren regelmessig crawle nettsiden for å jakte etter feil og forbedringsområder. Den vil ikke crawle utenfor nettstedet og målet er ikke å bygge en søkeindeks. Seomoz Pro gjør akkurat det jeg er på jakt etter, hvor crawleren rapporterer om ting som for korte title-tags, døde lenker og andre feil som er relevant for SEO. Jeg vil selvfølgelig ikke ha en kopi av noe Seomoz allerede har bygget, så planen er selvfølgelig å legge til funksjonaliteter som ikke finnes i Seomoz og som jeg ikke kan tenke meg de legger til ved det første.

Det jeg lurer på er hva slags teknologier jeg bør bygge dette på? Jeg regner med PHP ikke er det beste for slik crawling, selv om PHP kan bygge front-end som viser resultatene.

PS: Jeg har INGEN planer om å bygge en søkemotor.
 

Keanu

Geek
Det kan være kjekt å bruke en open source crawler som utgangspunkt, så slipper man en del koding. Dette gjelder spesielt om sidene skal parses. Finner en oversikt på Web crawler - Wikipedia, the free encyclopedia (Under Open-source crawlers).

Selv ville jeg benyttet en høynivå-språk som Java, Ruby, Python eller .Net. Selv har jeg brukt python for et lignende prosjekt, men da hovedsaklig fokus på scraping. Årsaken til anbefaling av høynivåspråk er at det gjør utviklingen raskere, og jeg vil tro det ikke er så store krav til hastighet som en søkemotor ville hatt.

Eksempel på utgangspunkt i CkSpider for Python:
Python A Simple Web Crawler
 
Sist redigert:

Pong

Jeg selger sʇɥƃıluʍop :)
Jeg hadde tatt PHP i første omgang fordi det er lett å demonstrere om og hvordan dette fungerer. Funksjonen file_get_contents er jo veldig enkel og PHP-kompetanse finner du overalt (kan du jo kjøre fra kommando-linjen også og du trenger ikke alltid generere en nettside).
Facebook bruker meg bekjent teknologi som kompilerer php-kode og etter det er det vel fort bare systemoppsettet som betyr resten for optimaliseringen.
 

tyr897

Medlem
Den fulle applikasjonen blir da fort tre-delt, slik jeg ser det:
1) Crawle sider og oppdatere en database/index
2) Kvalitativ analyse av de enkelte sidene crawlet
3) Presentasjon av den pregenererte analysen

Til #1 ville jeg gått for en ferdigskrevet crawler, eksempelvis Nutch.
Har ingen erfaring med Nutch, har bare sett det nevnt i forbindelse med Solr. Vet derfor ikke om det kan anbefales fremfor noe annet, eller om det er vanskelig å sette opp.
Ønsker du å benytte PHP bør du gjerne tenke på muligheter for flere tråder osv. Dette kan ordnes via cURL eller pcntl, men en effektiv crawler er litt mer enn bare å hente filer i batch modus. Problemstillingen gjelder forsåvidt også andre språk, som nok kan være bedre egnet enn PHP.

#2 avhenger litt av mengden. Blir det mye analyse av lenker etc. bør man kanskje kjøre Map/Reduce, hvis ikke holder det sikkert med et enkelt script som stapper resultatet inn i en database som benyttes av #3. I starten er sikkert sistnevnte mest hensiktsmessig, så kan man heller takle nye utfordringer etterhvert som de dukker opp.

Med andre ord, ønsker du å benytte PHP til alle tre komponentene, er det ikke noe i veien for det. Men jeg hadde først forsøkt meg på å benytte eksisterende prosjekter for crawling biten.
 
Sist redigert:

Kenneth Dreyer

Well-Known Member
Tyr er spot-on - den fulle applikasjonen vil bli 3-delt + data innhentet fra eksterne kilder. F.eks henter jeg data fra Google Analytics for webanalyse, engangement fra sider som backtype.com, kampanjekilder som Adwords, epostprogrammer, lenkeanalyser fra Seomoz og en rekke andre kilder - målet er så å blande alt sammen på en oversiktelig og 2-delt måte (Et panel for byrå/markedsfører/webmaster og et panel for kunde).

Det har nylig poppet opp en god del verktøy som gjør dette allerede, men ingen av de er bra tilpasset skandinaviske forhold!
 

Pong

Jeg selger sʇɥƃıluʍop :)
Jeg vil ikke hijacke tråden, men det høres interessant ut med de eksisterende programmer som nevnes, som nutch og wikipedia-lenken inneholdt en del stasj. Jaja, det siste jeg trenger er vel en ny hobby :(
 

tyr897

Medlem
Farlig det der, tiden går fort når man leser om spennende teknologi (og også på Wikipedia-safari for den saks skyld) ;)
 
Topp