Hope this helps
Michael
Hmmm… Gibt es denn eine Scriptsprache, auf die ich ausweichen
kann? Oder wie realisiert man sowas sonst?
Jojo
Sorry, ich hatte in Deinem ursprünglichen Posting überlesen, dass Du einen Suchmaschinenspider realisieren willst. Das grundsätzliche Problem liegt wohl in einem Missverhältnis zwischen dem, wofür diese „Scriptsprachen“ gedacht sind und dem wofür Du sie Anwenden willst.
Das was gemeinhin „Scripsprache“ genannt wird ist ja normalerweise die API (Application Programming Interface) eines Application Servers. Application Server aber sind eigentlich nur mäßig geeignet um Client-Anwendungen (und das ist ein Spider ja, er verhält sich ja gegenüber einem „fremden“ Server wie ein Client) zu konstruieren.
Ich denke, wenn ich Deine Aufgabe hätte und einerseits die Vorteile von PHP bzgl. des String-Parsing nutzen wollte (PERL kann das meiner Einschätzung nach übrigens noch performanter), andererseits aber meine Netzwerkverbindung möglichst effektiv auslasten wollte, indem ich möglichst viele fremde Seiten lade, während PHP noch analysiert, dann würde ich das in etwa wie folgt tun.
Mit Hilfe eines kleinen C/C++ Programms würde ich die zu ladenden URLS aus einer Datei lesen.
Die Antworten der Server würde ich aus C/C++ in temporären Dateien speichern, die in einer Weise einen Verweis auf die URL enthielten.
Das PHP-Script könnte nun locker über die geholten Inhalte Indexe bilden sowie die enthaltenenn Links, wieder als vollständige URLS in die URL-Datei für das C/C++ Programm schreiben etc.
In PHP könnte ggf. auch die Feststellung stattfinden, ob die jeweilige neue URL schon im Index vorhanden ist und nicht neu durchsucht werden soll etc.
Während das C/C++ Programm ggf. in mehreren Instanzen (mehrere Prozesse gleichzeitig) oder auch Threads (find ich dafür nicht so elegant) weitere Server „anspricht“ und deren Inhalte holt.
Eine weitere Möglichkeit ist z.B. auf
http://www.python.org/dev/doc/devel/lib/module-async…
für die Scripsprache python beschrieben.
„Multithreading“ in python ist in
http://starship.python.net/crew/hinsen/MMTK/Manual/M…
beschrieben.
i.O. ? Gruß Michael