PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ein paar Fragen zur Programmierung von Web-Spidern



Christian Korff
03-01-2004, 17:09
Hi.
Ich will ein wenig mit Web-Spidern experiementieren und habe dazu ein paar Fragen.

- Wie verhindere ich mehrmaliges anfordern von Dateien?
Ich habe schon die Möglichkeit in Betracht gezogen alle URLs intern gespeichert zu halten, aber dies würde ja dazu führen das das Programm immer mehr RAM verbrauchen würde und nur eine bestimmte Anzahl von URLs möglich wäre.

- Was muss ich beachten? zB Wieviel Clients dürfen max auf einen Host zugreifen?

Schonmal danke im Voraus für jene die mir da weiterhelfen.

Lin728
03-01-2004, 20:21
Sorry dass ich dir nicht direkt weiterhelfen kann, aber hätte ne Frage: Was istn Web-Spider?

Christian Korff
03-01-2004, 21:38
Original geschrieben von ceisserer
Sorry dass ich dir nicht direkt weiterhelfen kann, aber hätte ne Frage: Was istn Web-Spider?

Eine Spider ist ein automatiesierte Software (quasi ein Roboter) der Webseiten aus dem World Wide Web holt. Das machen zB die Suchmachinen um die Seiten zu indexieren. Eventuell kennt Sie der ein oder andere auch unter dem Begriff Web Crawlers.

mehlvogel
03-01-2004, 21:45
Original geschrieben von ceisserer
Was istn Web-Spider?

ich vermute Prinzipiell dasselbe wie robots - also Maschienen die das Webdurchsuchen, und den Inhalt indizieren (Die Suchmaschienen verfahren so).

Viel zu der Thematik kann ich nicht sagen, eine bessere Möglichkeit als die aufgerufenen URL im Speicher zu behalten, bzw irgendwo zu speichern fällt mir nicht ein, aber es sollte eine andere Möglichkeit geben sonst wären die Googlebots ja richtige Monstamaschienen. Oder es muss richtig intelligentes Speichermanagement im Programm geben, z.B. alle aufgerufnenen Seiten von dem aktuellen Host im RAM halten. Alle anderen aufgerufenen Seiten in einen Cache (also eine Feste Datei auf der Festplatte) speichern, am besten komprimiert, alle bisher aufgerufenen Hosts in einer seperaten Datei. führt nun ein Link von der Homepage runter, müsste man erst prüfen ob der Host schonmal aufgerufen wurde, wenn nicht wird der Host auf eine Todo gesetzt, ansonsten wird der Link verworfen (bzw zur noch späteren Kontrolle in eine andere Datei geschrieben, in der erstmal geschaut ob der Link denn auch in der komprimierten Datei vorhanden ist, und bei Bedarf trtozdem noch abgespidert wird).

zu der Maximalen Verbindungsanzahl kann man nicht soviel sagne, die ist von Host zu Host unterschiedlich, ich würde nicht soviele nehmen, damit man es nicht als DoS ansieht, vielleicht so 10 - 20 Maximal.

samsara
04-01-2004, 00:45
Vielleicht gibt dies einen Anstoss - ausprobieren! ;)

http://www.touchgraph.com/TGGoogleBrowser.html

Samsara

peschmae
04-01-2004, 09:18
wget hat ja auch einen Spider-Modus. Allerdings habe ich nicht die kleinste Ahnung, wie die das machen.

MfG Peschmä

RapidMax
04-01-2004, 19:24
Zuerst ein Tipp: Lass ihn nicht auf Linuxforen/mrunix und andere Foren los, die haben das nicht gern, wegen dem Traffic.

Man könnte eine Liste der Domains im Speicher halten, welche eine Pointer auf die Liste aller der Domain zugehörigen URLs auf der Harddisk enthalten. Sobald eine URL mit der Domain vorkommt, wird die auf der Harddisk enthaltene Liste nachgeladen und ist so schnell zugriffsbereit im Speicher, da mit grosser Wahrscheinlichkeit die nächsten URL auch in dieser Liste stehen.

Um nicht zuviel Speicher für die URLs in der Liste zu verbrauchen, könnte man statt der eigentlichen URL nur ein Hash davon speichern (z.B. md5, doch auch CRC32 würde reichen). Nun muss nur die nächste URL gehashed werden und mit den Werten in der URL verglichen werden.

Gruss, Andy

netzmeister
05-01-2004, 00:29
Hallo,

vor einger Zeit hatte ich mich auch mit der Thematik auseinandergesetzt.

Hier habe ich einen interessanten Link zu diesem Thema:

http://www.mnogosearch.ru/

Dort findest Du eine komplette Suchmaschine. Auch der Roboter ist
wirklich gut zu konfigurieren.

Viele Grüße

Eicke