Automator + Safari: X Seiten öffnen und je 1 PDF laden?

Maconym

Maconym

Aktives Mitglied
Thread Starter
Dabei seit
08.10.2003
Beiträge
426
Reaktionspunkte
4
Folgendes Spektakel ist geplant:

Auf einer Internetseite sind insgesamt ca. 90 Links. Hinter z.B. 75 Links befindet sich eine Seite, auf der direkt auf ein PDF verlinkt wird. Alle z.B. 75 PDF sollen herunter geladen werden.

Ich versuchte folgendes:

1. Alle URLs von der aktuellen Safari-Seite abfragen (eine Sortierung habe ich mir an dieser Stelle gespart, weil wo es keinen Link zu einem PDF gibt, wird später auch nichts geladen.)

2. Alle gefundenen URLs sollen geöffnet werden.

3. Jede geöffnete Seite soll nach Links, die mit ".pdf" aufhören durchsucht werden.

4. Die gefundenen Links sollen geladen und gespeichert werden.

Ist so etwas möglich?



Ich nutzte bei geöffneter Ausgangsseite in Automator zunächst "Aktuelle Web-Seite von Safari abfragen", dann "Link-URLs von den Web-Seiten abfragen".

Dann "Angegebene URLs abfragen" um die einzelnen Fenster öffnen zu lassen.

Schon hier kam die erste Fehlermeldung. Obwohl sich auf der Ausgangsseite URLs befinden, werden diese scheinbar nicht gefunden.

Wenn dieses Problem behoben sein sollte (das halte ich noch für möglich), muss jede gefundene Seite mit "Web-Seiten anzeigen" geöffnet werden und erneut mit "Link-URLs von den Web-Seiten abfragen" durchsucht werden.

Das Ergebnis dann mit "URLs filtern" nach .pdf durchsuchen lassen.

Die gefundenen URLs mit "URLs laden" laden.

Das Problem: Die Anzahl der gefundenen Links im ersten Schritt ist immer unterschiedlich. Hier als Beispiel 75, es kann aber auch mal nur 48 sein.

Im Zweiten Schritt müssen so viele Safari-Fenster nach URLs durchsucht werden, wie im ersten Schritt gefunden und geöffnet werden.

Ich hoffe, das ist einigermaßen verständlich von mir niedergeschrieben worden.

Hat jemand schonmal etwas Ähnliches gebastelt? Kann man mit Automator Safari-Fenster öffnen und schließen lassen, nachdem evtl. ein Dokument geladen wurde?



Erklärung: Es geht um E-Paper einer Zeitung. Damit ich unterwegs auch offline auf Laptop lesen kann, brauche ich jede Seite als PDF. Es kann aber nur jede Seite einzeln als PDF gespeichert werden, und das ist mir jeden Tag zu viel Aufwand. Die Ausgangsseite wäre die Seite mit der Seitenübersicht, d.h. alle Seiten in Miniatur, jede lässt sich einzeln öffnen (nicht als PDF, das wird erst im geöffneten Fenster zum Download angeboten).

(Bei der Zeitung habe ich schon angefragt, doch die befürchten zuviel Traffic, wenn diese Funktion für alle angeboten werden sollte.)
 
Also im Automator funktioniert Folgendes:
1. Aktuelle Web-Seite von Safari abfragen
2. Link-URLs von den Web-Seiten abfragem
3. URLs filtern (Name endet mit "pdf")
4. URLs laden

Das lädt alle verlinkten PDFs der aktuellen Seite. Funktioniert, hab ich grad selber getestet. Ist es das, was du brauchst?
 
Ich glaub, mir dämmert langsam, was du mit dem zweiten Schritt meinst. Versuchs so (mangels brauchbarer Beispielseite nicht getestet, vielleicht gibst du uns den URL einer solchen Seite, dann kann cih dir besser helfen):

1. Aktuelle Web-Seite von Safari abfragen
2. Link-URLs von den Web-Seiten abfragem
3. URLs filtern (Name endet mit "html")
4. Link-URLs von den Web-Seiten abfragem
5. URLs filtern (Name endet mit "pdf")
6. URLs laden

Alles klar?
 
Hier eine Demo-Seite:

Zeitungsseitenübersicht

Jede Zeitungsseite lässt sich öffnen. Unter der Seite befindet sich jeweils der Link zum Laden der Seite als PDF (aus Gründen, die mir unbekannt sind, wird der Link bei FireFox nicht angezeigt, falls jemand FF nutzt).

Ist es nun sinnvoller, nacheinander jede Seite öffnen zu lassen, nach PDF zu durchsuchen, evtl. ein PDF zu laden und dann noch die Seite schließen zu lassen?

Oder besser: Öffne alle Links auf der Seite. Suche sämtliche offenen Seiten nach PDF ab. Lade gefundene PDFs, falls vorhanden, und schließe noch die Seite.

Das Problem an dem Vorhaben ist wohl, dass in Safari viele Fenster geöffnet werden, deren Namen vorher nicht bekannt ist bzw. für alle Seiten gleich ist. Man müsste Automator beibringen können, dass die Namen der Fenster, welche geöffnet werden, in einem Zwischenspeicher abgelegt werden damit diese später nach und nach aufgerufen werden können.

Oder doch besser nacheinander alle Seiten öffnen, durchsuchen, evtl. PDF laden und wieder schließen lassen? Dann würde das Problem der vielen offenen Fenster umgangen...
 
Nein, du hast das missverstanden, es ist egal, wie viele Seiten das sind und egal wie die heißen. Und die einzelnen Unterseiten müssen auch nicht im Safari geöffnet werden.

Du kannst die gefilterten URLs nochmal dem Befehl "Link-URLs von den Web-Seiten abfragen" übergeben. Der nimmt dann jede Seite her und durchforstet deren Links. Alles klar?

Für deine Beispielseite hab ich dir das als Workflow in den Anhang gesichert. Schaus dir an und modifiziers dir für andere Seiten entsprechend. Schau mal:
 

Anhänge

  • Badisches-Tagblatt.zip
    3,2 KB · Aufrufe: 95
Oh, nein!

Da hab ich viel zu kompliziert gedacht, wenn doch die Lösung so einfach ist.

Es funktioniert!

Nur war mir nicht klar, dass Links auch von nichtgeöffneten Seiten abgefragt werden können.

Bedanke mich für Unterstützung!
 
Jetzt doch Probleme

Muss nun doch nochmal dieses Thema ausgraben.

Zum Jahresbeginn habe ich mir nun den Zugang zu dem aktuellen Zeitungsbereich besorgt. Und da funktioniert es nicht mit dem Automator. :( Ich vermute mal, der Fehler liegt darin, weil Automator nicht die Zugangsdaten hat und dadurch nicht die einzelnen PDF-Links zu sehen bekommt.

Gibt es grundsätzlich die Möglichkeit - auch wenn der Vorgang jeweils länger dauern würde - dass alles wie ursprünglich von mir geschrieben wurde, alles über Safari ablaufen kann?

1. Safari öffnet eine Seite im neuen Fenster
2. Safari sucht Link zu einem PDF
3. Safari lädt PDF
4. Safari schließt Fenster und beginnt wieder bei 1.

Kann so etwas per AppleScript umgesetzt werden?

Oder gibt es andere Möglichkeiten um die Automator-Lösung noch zu bearbeiten, damit es auch im aktuellen Bereich mit dem Download funktioniert? Habe schon einige Modifikationen vorgenommen, ohne Erfolg.

Ich kann die Zugangsdaten zum aktuellen Bereich nicht zum Testen weitergeben, doch wenn jemand einen Vorschlag hat, werde ich ihn umsetzen und das Ergebnis hier bekannt geben...
 
Es könnte auch anders gehen:

Nach etwas Forschung nun ein anderer Lösungsvorschlag:

Es wäre kein allzu großer Aufwand, in der Übersicht jede Zeitungsseite selbst mit Befehl-Klick in einem neuen Tab zu öffnen. Dadurch könnte der Teil, bei der Automator Zugangsdaten bräuchte vernachlässigt werden.

Dann bräuchte man nur ein Script, das folgendes macht:

1. Gehe zu Safari
2. Suche aktuelle Seite nach PDF-Link ab
3. Schließe Fenster/Tab
4. weiter bei 1.
5. Wenn alle Fenster geschlossen, lade alle Dokumente

Zum Laden der Dokumente sind nach ersten Versuchen keine Zugangsdaten erforderlich.

Ist sowas möglich? Ich habe schon einige Testläufe gemacht, doch schon beim Versuch mit Automator das aktuelle Safari-Fenster zu schließen, habe ich erhöhte Probleme... :eek:
 
Zuletzt bearbeitet:
Hi,weiß nicht ob es dir hilft, aber hab grad ein kleines Applescript "geschrieben", welches das oberste Fenster in Safari schließt. Das solltest du dann in Automator einbauen können:

tell application "Safari" to activate
tell application "System Events"
tell process "Safari"
click menu item "New Window" of menu "File" of menu bar 1
end tell
end tell

Hoffe, es hilft dir weiter!

Gruß

Daniel
 
  • Gefällt mir
Reaktionen: Maconym
Zurück
Oben Unten