Web Spider

Hi Leute,
hätte mal wieder eine frage…
Kennt sich jemand mit Webspidern aus? Ich möchte einen eigenen erstellen und würde mich über ratschläge anleitung/ tutoriale sehr freuen.
Kennt jemand überhaupt etwas zu diesem Thema?

Würde mich sehr freuen wenn jemand der sich mit dem Thema auskennt mir Tipps geben würde…
Gruß
Daniel :smiley:

Kenne das Pogramm nicht ^^

So ein Teil was Google benutzt
dieses Script um Seiten zu Sammeln und nach bestimmten stichwörtern zu durchforsten…

Schau mal hier, das hat Google mir gerade ausgespuckt:
Klick mich!

Ich weiß nicht, ob das das richtige für dich ist, aber ein Crawler leistet ja die selben Dienste wie ein Spider.

Danke für die mühe…
Ähnliche ergebnisse gibt es regelmäßig aber anscheinend kann niemand so ein Ding selber Schreiben…

Ich habe ziemlich genau vorderungen an diesen Crawler die ich bissher noch nie Vorprogrammiert gefunden habe…
Deshalb suche ich nach einem Tutorial um so ein Ding selber zu schreiben…

Gruß
Onemillion :slight_smile:

Vielleicht hilft es ja was, wenn du uns mal auflistest was dein Wunsch-Spider auf dem Kasten haben sollte. Denn machbar ist generell alles - Es ist nur eine Frage des Aufwands und der Kosten.

Moin,

also es kommt immer drauf an, wie der Webcrawler arbeiten soll. Am gängisten sind diejenigen, die Meta-Angaben durchsuchen und sich Link für Link entlanghangeln …

MfG
myPages

Das ist vermutlich als PHP-Anwendung nicht geradezu ideal ;o)

Da wird man dann eher eine ‘richtige’ Programmiersprache
verwenden und ein cluster von Rechnern, die sich die Aufgaben
teilen - durchsuchen, indizieren, ablegen, Suchanfragen
verarbeiten, Ergebnisse zusammenstellen und anzeigen …

spider oder crawler oder harvester mache ja eher nur das erstere.
Wichtig ist jedenfalls, sich dabei zu überlegen, wie die korrelierten
Daten abgelegt werden, also wo welche Stichwörter zu finden
sind, sofern man die Originalseiten jedenfalls jemals zügig
wiederfinden will, was dann eben eine gewaltige
Datenbankanwendung ist.

1.) Mit PHP spielt sich da gar nix
2.) Du bräuchstest zumindest einen Server, oder du startest es von deinem PC
3.) du brauchst kenntnisse in einer Programmiersprache, die Multithreading unterstützt
4.) du brauchst eine gute Datenbank
5.) Du brauchst ein paar gute Programmansätze, die überhaupt die Daten filtern

6.) Viel Spaß

a)Der Spider soll möglichst alle Seiten auf diesem Planeten durchforsten.
Er hat eine Stichwortliste und falls ein Wort auf der Internetseite mit der Stichwortliste übereistimmt wird der Link zur Seite gespeichert.
b) Die Seite wird nachdem das Stichwort der ersten Liste funktioniert hat von einem Zweiten Spider nach einem bestimmten stichwort untersucht.
c) Wenn a) und b) erfolgreich waren würd ein dritter Spider losgeschickt der eine weitere Stichwortliste besitzt.
d) Alle Stichwort bzw (wenn nur 2 Funktioniert) haben + Url. werden in eine Liste eingetragen.

Ist das im berreich des möglichen???
(hoffe es ist nicht komplett schlecht gedacht!(bzw kompliziert))

Gruß
Daniel

Ps.: Könnte mir jemand eine Buchempfehlung geben?
Ps2.: Was für Serverleistung bräuchte man um soetwas relativ reibungslos ablaufen zu lassen??

Mhhh… Auch wenn ich wenig Ahnung davon habe:

Wenn ich das richtig verstehe:
Dein Spider soll also nur Seiten listen, die mit ein bestimmtes Thema behandeln. Dein erster Spider soll nur die Seite rausfinden und der zweite soll dann mehr Details liefern. Und ein dritter noch mehr?

Kann Google das nicht schon? Ich habe schon öfters Seiten gesehen, die die Google-Suche eingebaut haben, und die gelieferten Ergebnisse umfassten immer nur themenrelevante Seiten.

[quote=“kerbination”]
Kann Google das nicht schon? Ich habe schon öfters Seiten gesehen, die die Google-Suche eingebaut haben, und die gelieferten Ergebnisse umfassten immer nur themenrelevante Seiten.[/quote]

Ja Google macht etwas ähnliches…
ich möchte aber das mein letzter Spider die gefundenen stichwörter in eine Liste packt…
Alle!!! Und ich gehe von bisher min 50.000 Suchbegriffen aus die alle gut geordnet in eine LIste eingetragen werden müssen…

Nicht mal annähernd.

Schon an dem „alle Seiten auf diesem Planeten“ würde es scheitern - woher willst du die denn alle wissen? Google weiß das auch nicht; Crawler funktionieren nach dem Prinzip, dass sie eine Seite herunterladen, indexieren, und alle verlinkten Seiten auch herunterladen, indexieren und die darauf verlinkten Seiten ebenfalls herunterladen. Gezielt nach Stichwörtern im Internet ist unmöglich. [size=85](Außer eben mit Google :ps:)[/size]

„So ein Script wie Google“ ist auch etwas… unmöglich. Das Google-Crawlsystem ist/sind tausende von Rechnern, auf denen alles Mögliche an Software läuft. Der Grund, warum es keine Tutorials für so etwas gibt, ist einfach der, dass es eine wahnsinnig komplexe Angelegenheit ist.

Könnte mir jemand die beste Programmiersprache für soetwas sagen?
Werde es dann einfach lernen so ein sch*** Spider zu erschaffen :p
Ich halte meine idee für ziemlich gut und denke das sich deshalb die mühe lohnen würde…
Da ich eh seit längerem überlege ob ich mir einen Server kaufe ist das das kleinere Problem…

Würde mich freuen wenn mir ein paar Leute sagen würden was sie für die Perfekte Sprache um Programmieren eies Spiders halten.
Werden dann morgen anfangen diese Sprachen zu lernen ^^

Freu mich auf Antworten
Onemilion

Das nächste Problem ist “einen Server kaufen”. Google beispielsweise hat zigtausende Server um der Last gerecht zu werden. Denn nicht nur die Suchanfragen der User fressen Traffic und Ressourcen, sondern auch das Crawlen im Hintergrund. Da bräuchtest du schon einen ganzen Serverpark, und der verschlingt unmengen Bares…

es würde außer dem spider/ Crawler nichts auf den Server zugreifen (außer noch mir)
Und ich denke das hauptproblem von google sind die ganzen Leute die drauf zugreifen
(bzw. das Glück)
Bitte die Programmiersprache ^^

Es gibt keine „beste“ Programmiersprache für so etwas, musst du schon selbst herausfinden, welche für dich passt. Das Google-System basiert nach Angaben von Google auf allen möglichen Programmiersprachen, zum großen Teil auch auf Python.

dann werde ich mir morgen früh bücher über pyton holen… :sunglasses:

naja…mit C/C++ ginge es auch :wink:
das Grundprinzip ist sogar recht einfach:

0.) Prüfen ob Seite schon indexiert ist
1.) Verbindung mit dem Server herstellen
2.) Request absenden
3.) Antwort (HTML) empfangen
4.) HTML nach Schlüsselwörter und Links durchsuchen
5.) Links in eine Warteschlange eintragen
6.) Daten in eine DB eintragen
6.) Zu Schritt 0 gehen

Das erste Problem ist nun: Die Warteschlange wird immer länger (und nie mehr kürzer), du musst also schon anfangen die Links zu filtern, bevor sie in die Warteschlange kommen

Das zweite Problem ist: Die DB wird immer größer und läuft sicher irgendwann über, damit das nicht soo schnell passiert musst du auch die Inhalte stark filtern
Das Problem dabei ist: Das du gute Schlüsselwörter brauchst, woher bekomst du die???

Das letzte Problem ist: Aufbau der Verbindung, Empfangen der Daten, Auswerten und Eintragen dauert warscheinlich etwas mehr als eine Sekunde…mit einem Server hast du auch nach mehreren Wochen keine Anschaulichen Resultate

Du kannst es sehr gerne probieren, aber ich glaube das ist eher aussichtslos…

also zu den servern:
die leistungstärke wäre mir erstmal egal

da sprobnlem ist a) die bandbreite ( also ein paar server a 100mb line :wink:
und b) die traffic ( da kommen ein paar tb pro monat zusammen)