Probleem: effectief zoveel mogelijk nederlandse sites zoeken

Pagina: 1
Acties:

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Op mijn werk houden we af en toe een code competition. Deze keer is er een wedstrijd waarbij we een soort webspider moeten ontwikkelen. De spider moet zoveel mogelijk verschillende Nederlandse sites zien te vinden.

Mogelijke oplossing: een Google zoek actie starten naar Nederlandse sites, iedere gevonden pagina doorlopen (mits de URL eindigd met .nl), binnen iedere pagina weer andere links zoeken naar Nederlandse sites. Komt een site nog niet voor in de database, dan wordt die toegevoegd.

Mijn vraag: heeft iemand een idee of er een effectievere methode bestaat om zo'n spider te laten zoeken? Suggesties zijn welkom, ik wil per slot van rekening graag winnen. Ik hoef dus geen code voorbeelden, het gaat meer om de theorie.

Voor meer info (en restricties) lees onderstaande mail:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Opdracht
===================
Vind zoveel mogelijk unieke, werkende, nederlandse! (.nl), domeinnamen. 
Vind per domeinnaam/website : de titel van de homepage, en de metatags description en keywords.
Sla de gevonden domeinnamen op in een database. 


Werking van je programma
===================
Programma moet een delete knop hebben die alle records verwijderd uit je database.
Een start knop die begint en een stop knop. Hij moet dus niet automatisch beginnen.


Optioneel
===================
Andere properties per domeinnaam zijn natuurlijk ook leuk :-) denk aan webserver software (apache, iis) per domeinnaam, of de grootte van de homepage. Ip adres kan leuk zijn zodat je ziet welke domeinen op 1 machine draaien. Reactie snelheid van de site. Etc. voel je vrij om andere properties te verzinnen.

Regels
====================
Je mag géén dictionary's van te voren in je code hebben. Wel een handvol start url's en methodieken om te zoeken. Maar geen kant en klare woordenboeken of ellenlange url lijsten. Verder zijn er géén regels. Je bent vrij om zoekmachines online te gebruiken, woorden boeken online te gebruiken, etc. Hier op kantoor NIET je applicatie voor langere tijd aanzetten. Kort testen is goed. Vrijdag eind vd middag kan je gebruiken. 


Competitie:
====================
Gemeten wordt : het aantal gevonden sites mét properties, dus echt werkende sites in je database. Niet het aantal records in je database.

Er zijn 2 competities, de "10-minutes version" en de "10-hours version" compo.

Met de short version draait je applicatie 10 minuten. Hier komt het dus aan op snel verwerken van de data. 
Met de long version draait je applicatie 10 uur en gaat het dus juist om een effectieve zoek methode

Je mag voor de verschillende compo's eventueel verschillende applicaties aanleveren als je mogelijk optimalisaties hebt voor de short die niet voor long van toepassing zijn of andersom.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • user109731
  • Registratie: Maart 2004
  • Niet online
Is dit niet gewoon zoeken op site:.nl met zoveel mogelijk zoekmachines? Dat spideren hebben die al uitstekend voor je gedaan :)

Ik zie nu dat je ook extra info van de site moet ophalen... Dan zou ik er voor kiezen om iig een aantal afzonderlijke threads/processen het downloaden te laten doen natuurlijk, en zeker bij die 10-minuten-versie direct afkappen als het ophalen te lang duurt :)

Het is ook handig om alleen de eerste x aantal bytes in te lezen, als het enkel om header info gaat.

[ Voor 59% gewijzigd door user109731 op 22-09-2006 16:44 ]


Verwijderd

Ik zou met dns gaan spelen...

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 13-02 16:24

TheDane

1.618

Sniff de databases en/of traffic van je tegenstanders ... ;)

[ Voor 13% gewijzigd door TheDane op 22-09-2006 17:07 ]


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

DNS servers kunnen een optie aan hebben waardoor je alle records kan opvragen.
natuurlijk staat dit voor publieke servers af uit gevaar voor DoS aanvallen etc.

Misschien kun je een handvol nederlandstalige portals opzoeken als begin sites
en van daaruit alle links volgen. Een goeie regexp zal al veel doen in de verwerking van al dat goeds.

Een extraatje wat je kan inbouwen: in google kan je dacht ik zoeken naar all sites die refereren naar een site. Als je dus een handjevol van die portaal sites (die logischerwijs veel gerefereerd worden) in laat typen, kun je wel veel sites vinden.

Veel zal ook liggen aan je databank en hoe je ermee omspringt. Verder kun je gewoon zoveel mogelijk threads starten (benchmark dat even zodat je niet met lock-problemen komt)
Een goeie datastructuur en gebruik van je databank zal al heel veel doen.

ASSUME makes an ASS out of U and ME


  • Peedy
  • Registratie: Februari 2002
  • Laatst online: 26-01 20:14
Zoeken met Google op 'inurl:.nl' ? :Y)

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12-02 13:44
Je moet het niet al te mooi doen, gewoon alle verplichte info in 1 tabel gooien met 1 veld. Dan voldoe je aan de opdracht en heb je de meest lichte queries om je data in te voeren.

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:38

pietje63

RTFM

Ik zou toch dynamisch een woordenboek bestand gaan laden vanaf een website.

Daarna zoeken op websites met veel voorkomende woorden
(de, het, een. zijn, startpagina, etc)

Verder kun je startpagina.nl (+dochters) wsl sowieso goed gebruien

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!

Pagina: 1