2010-02-08 11 views
20

Ich möchte eine Website scrappen, um programmatisch alle externen Links innerhalb beliebiger Flash-Elemente auf der Seite zu sammeln. Ich würde auch gerne anderen Text sammeln, wenn möglich, aber die Links sind der wichtige Teil. Ist das möglich? Eine Freeware-Bibliothek/ein Service, um diese Aufgabe zu erfüllen, wäre vorzuziehen, aber wenn es keine gibt, wie kann ich die Aufgabe alleine erledigen? Ist es möglich, den Quellcode zu bekommen und daraus zu ziehen?Kann ich den Blitz schaben?

Antwort

10

Durch das Dekompilieren der Flash-Quelle können Sie den ActionScript-Teil der Flash-Datei sehen, der häufig Informationen wie Links enthält.

Ein freier Decompiler ist Flare. Es ist nur Befehlszeile und funktioniert gut. Es wird einige der Informationen in neueren Flash-Formaten nicht dekodieren (> CS3 denke ich). Es speichert alle AS in einer Datei.

Sothink SWF Decompiler ist ein anspruchsvoller kommerzielles Programm. Es wird gut mit jeder Flash-Datei funktionieren, die ich ausprobiert habe und die Ergebnisse sind sehr gründlich und gut organisiert. Es ist GUI-basiert und ich weiß nicht, ob es leicht zu automatisieren ist.

Mit Flare, da es ein Befehlszeilentool ist, könnte man einfach ein Skript schreiben, um die SWF zu erhalten, dekompilieren, grep für 'http: //' und die Ergebnisse protokollieren.

+3

Flare funktioniert nicht mehr für Mac. –

3

Yanking „externe Links“ aus einem Blitz kann als so einfach sein, zum Beispiel:

curl -s http://hostname/path/to/file.swf | strings | grep http 

Natürlich ist dies würde fehlschlagen, wenn der Autor den Versuch gemacht hat, um die URL auszublenden.

YMMV viel. Viel Glück!

+0

Curls Ausgabe sieht nur aus wie ein Haufen zufälliger Zeichen, nichts so ko-herent wie http. Ich benutzte Curl www.michaelgraves.com/mga.swf -o test.txt. Verarbeiten Strings etwas in lesbaren Text? –

+1

Das 'strings'-Programm zerrt, was möglicherweise lesbare Zeichenketten aus einem binären Datenstrom sein können. Das 'grep' zieht alle Zeichenfolgen heraus, die das Wort' http' enthalten. Sie können auch versuchen, die Befehlsoptionen für Zeichenfolgen zu ändern, um Ihnen eine nützlichere Ausgabe zu geben ('strings -10': nur Ausgabezeichenfolgen von mindestens 10 Zeichen). – MikeyB

+0

Wenn die Datei also keine" http "-Zeichenfolge enthält, ist strings nicht werde es mir geben, oder? –

Verwandte Themen