Prüfung wieviele Popups eine Seite öffnet (in PHP?)

zerafin

im Ruhestand
ID: 36455
L
20 April 2006
2.308
124
Huhu zusammen,
ich möchte mir ein kleines Script basteln, welches als Input eine URL bekommt und dann die Anzahl der Popups ausgibt, die angezeigt werden.

In JavaScript hätte ich eine Idee. Aber ich würde das Script gerne in einem Cronjob nutzen. Deswegen wäre mir php am liebsten, da der Rest des Cronjobs auch php ist. ;)

Erste Idee in php: Die Seite einlesen und nach Javascript suchen, welches Popups öffnet. Das ist mir aber zu ungenau, weil die Fenster ja nicht zwingend mit window.open geöffnet werden müssen. Es kann ja auch ein Adserver oder ein JavaScript eines Popup-Sponsors sein..

Das sind bisher meine Überlegungen. Hat Jemand von euch die Idee, die mir fehlt? :)

Bin für jeden Denkanstoß dankbar!

Gruß, Zera
 
zerafin schrieb:
Erste Idee in php: Die Seite einlesen und nach Javascript suchen, welches Popups öffnet.
Ne andere Alternative wirst du kaum haben.
Du musst exakt dasselbe auf der Serverseite machen, was normal der Browser auf der Clientseite erledigt.
zerafin schrieb:
Es kann ja auch ein Adserver oder ein JavaScript eines Popup-Sponsors sein..
Dann musst du dieses JavaScript downloaden und nach einem window.open() suchen.

Bedenke aber die vielen Spezialfälle, z.B.
PHP:
// JavaScript-Code
var x="wind"+"ow.open(....)";
eval(x);

// oder der:
var dummy=window;
dummy.open(...);
Es ganz perfekt zu lösen, dürfte also relativ unmöglich sein, weil du nicht an alles denken kannst.
 
Puh, da haste Dir aber auch 'ne Aufgabe gestellt. :)

Ich würde vermutlich auch den Weg mit den RegExp wählen, da ich nicht wüsste, wie man das anders anstellen sollte. Wenn Du's mit JavaScript realisieren würdest, hättest Du ja den Vorteil, dass die Skripte geparset werden. So müsstest Du das selbst übernehmen und ich bezweifel mal, dass das einfach wäre.

Je nachdem, wieviel Einfluss Du auf den Server hast, auf dem der Cronjob ausgeführt wird, könntest Du die Seite evtl in 'nem Browser öffnen lassen und später die Instanzen der einzelnen Browserfenster zählen. Natürlich nur, falls das irgendein Browser so umsetzt, dass jedes einzelne Fenster als einzelner Prozess zu erkennen wäre, was meiner Meinung nach zwar programmiertechnischer Unsinn wäre, aber wer weiss... ;)

Falls Du dafür 'ne Lösung finden solltest, lass mal davon hören, wie Du's gemacht hast. Muss ja nicht ins Detail sein, aber so'n grober Ansatz wäre interessant.
 
Huhu ihr Beiden,
danke für eure Tipps. :)

Ich hatte befürchtet, dass es keine andere Möglichkeit mit php gibt.

Ich habe mir jetzt erstmal eine semi-automatische Lösung gebastelt. Dabei muss ich zwar jede Seite manuell aufrufen, kann dann aber schön "ok"/"nicht ok" klicken und das Ergebnis landet in der Datenbank. So erspare ich mir zumindest schonmal die Mehrarbeit, wenn sich eine Seite wiederholt, da ich das Ergebnis ja dann schon in der Datenbank habe und die Seite nicht mehr zum Test angezeigt wird.

Kleiner Vorteil: Ich kann mir die Seite gleich ansehen und auf gesetzeswiedrige Inhalte checken.

Da es sich um sehr wenige Seiten handelt, ist diese Lösung ganz ok. Wenn ich mal viel Zeit habe setze ich mich aber mal an eine automatische Lösung. :mrgreen:

Gruß, Zera
 
Lass die Seite in nem Browser Darstellen und Zähl die Fenster ;) Anderst kommst nicht wirklich auf nen grünen Zweig..
 
selbst zählen ist bei weiten einfacher ;) automatisch würde heißen du müsstest dir nen halben javascript interpreter basteln und noch mehr... weil window.open() heißt ja nicht unbedingt werbe popup. kann ja auch nen info popup sein, dass der user per hand öffnet. sprich du müsstest erstmal die code teile finden die für dich interessant sind... und das ist auch schon so ne sache.
 
ZeroCCC schrieb:
selbst zählen ist bei weiten einfacher ;) automatisch würde heißen du müsstest dir nen halben javascript interpreter basteln und noch mehr... weil window.open() heißt ja nicht unbedingt werbe popup. kann ja auch nen info popup sein, dass der user per hand öffnet. sprich du müsstest erstmal die code teile finden die für dich interessant sind... und das ist auch schon so ne sache.
Und eine Java VM und eine Flash Interpreter, ja ;)
 
ich würde es mit perl versuchen. ich würde dafür dass www::machanize nutzen und gucken wieviel fenster sich nach dem aufrufen der url geöffnet haben. Ob es mit mechanize genau geht weiß ich cniht, aber ich denke schon.


MfG

Blacky