Gå til innhold

Anbefalte innlegg

Hei!

 

Har i den seneste tiden fått kjempelyst å lage min egen søkemotor som henter informasjon fra sider jeg selv velger, så brukerne kan få mye mer direkte resultater, enn å lete seg gjennom mange søk på generelle søkemotorer.

 

Ta f.eks en slags nisje-søkemotor.

 

Såvidt jeg har forstått, trenger du basicly 1 crawler for å hente inn informasjon og lagre den i store fine databaser så den er enkel å hente frem igjen. Så er det den faktiske søkemotoren som leter opp informasjon basert på søk, i denne fine databasen. Hvordan den henter informasjon osv er vel rett og slett basert på hvordan jeg vil den skal "lese" informasjonen i databasen, men den tid den sorg.

 

Først å fremst må jeg lage\anskaffe en crawler som kan plukke opp nøkkelord på både standar nettsider og forumsider (som da kan bli litt mer innviklet å søke automatisert i?). Har søkt litt på google, men har bare kommet frem til ferdige søkemotorer som ikke gjør det jeg vil, bla. har google en søk ser ut til å gjøre det jeg vil, men den gjør det ikke :) Dessuten er det mye kulere og mer lærerikt å lage en selv! De "guidene" jeg har funnet, er enten alt for langt over mitt nivå, eller bare "planer" om hvordan oppsettet skal være, men ikke kode-snutter og eksempler.

 

Noen som har noen forslag til hvilket språk jeg kan bruke, og hvordan jeg går frem? (hvilke metoder osv). Kan grunnleggende php og java(og lærer). Og hvilke fordeler \ bakdeler er det ved å lage sin egen, eller bruke sin egen? er det f.eks en måte å få ferdige lister som crawler evnt. skulle skaffet, eller må det gjøres selv?

 

Og er det slik at crawling MÅ\BØR avtales med side-eiere først?

Lenke til kommentar
Videoannonse
Annonse

Python er kanskje et fint språk å gjøre dette på, men det meste kan brukes.

 

Du må ikke avtale med sideeier, men du må respektere informasjonen som finnes i robots.txt på roten av siden. Her finner man "instrukser" som webcrawlere leser, bla. informasjon om hvilke url'er det ikke er ønskelig at skal indekseres.

 

Står en del om det her.

Lenke til kommentar

Python er som nevnt av Sokkalf er bra på dette som på mye annet.

Scrapy er et web crawling framework som gjør dette lettere.

 

Det er viktig og starte med og forstå hvordan man tar ut info fra en webside.

Jeg liker BeautifulSoup veldig bra,også lxml er bra.

 

Eksemplel på hvordan dette kan gjøres.

Her ønsker jeg og kun hente prisen på bønner.

http://beans.itcarlow.ie/prices.html

 

For BeautifulSoup spiller det ingen rolle om noen har lagd veldig dårlig html,den greier og tråle seg igjennom og finne det du ønsker.

 

import urllib2
from BeautifulSoup import BeautifulSoup

#Read in website
url = urllib2.urlopen('http://beans.itcarlow.ie/prices.html')
soup = BeautifulSoup(url)
print soup #website contents

tag = soup.findAll('strong') #Find strong tag
print tag                    #[<strong>$6.36</strong>]
print tag[0].string          #Print out info we want "$6.36"

 

Eller med kun med regular expression.

import urllib2
import re

url = urllib2.urlopen('http://beans.itcarlow.ie/prices.html').read()
print re.search(r'\$\d.+\d', url).group()  #$5.30

Regular expression alene på større websider er ikke en god idèe

alene.

Regular expression sammen med BeautifulSoup,lxml blir dette et kraftig verktøy.

Les dette artige og gode svaret av bobince

robots.txt som nevnes kan lures rimlig greit.

Men man prøver og vise god skjønn når man lager en crawler.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...