2017-03-11 3 views
0

Ich möchte eine Bildschirmaufnahme einer dynamischen Webseite machen. Inhalt ändert sich jede Stunde des Tages. Mein Skript funktioniert gut aber: 1. Ich möchte sicherstellen, dass das Skript aktiv ist, während der iMac (OS X Yosemite Version 10.10.5) im Schlafmodus ist oder wenn der Bildschirmschoner aktiv ist.
2. zweites Problem ist, dass die Bildschirmaufnahme muss meine gewünschte Webseite sein und nicht das aktive Fenster.Ich möchte die gleiche URL jede Stunde öffnen und eine screencapture von der geöffneten Webseite nehmen

set dFolder to "~/Desktop/screencapture/" 
do shell script ("mkdir -p " & dFolder) 
set i to 0 
repeat 24 times 
    do shell script "open -a Safari http://www.lipsum.com/" 
    do shell script ("screencapture " & dFolder & "frame-" & i & ".png") 
    delay 3600 -- Wait for 3600 seconds. 
    set i to i + 1 
end repeat 
+0

Hat meine Antwort Ihr Problem geklärt? Wenn ja, dann überlege dir bitte, ob du es als Antwort akzeptierst - indem du auf das grüne Häkchen neben der Stimmenzahl klickst. Wenn nicht, sag bitte, was nicht funktioniert hat, damit ich oder jemand anderes dir weiter helfen kann. Vielen Dank. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

+0

Hatte nicht die Zeit, es zu versuchen. Tx für die Antwort. – Geonemec

Antwort

1

Ich glaube nicht, dass Sie mit dem von Ihnen gewählten Werkzeug machen können, was Sie wollen. Ich denke, Sie müssen webkit2png verwenden.

Gehen Sie zu GitHub und laden Sie das Skript webkit2png von here. Es ist nur ein Python-Skript in einer einzigen Datei. Sie werden es um die Linie bearbeiten müssen 420 so sieht es wie folgt aus (es gibt drei Linien in der Mitte hinzugefügt):

# Hide the dock icon (needs to run before NSApplication.sharedApplication) 
AppKit.NSBundle.mainBundle().infoDictionary()['LSBackgroundOnly'] = '1' 

# Handles ATS HTTPS requirement introduced in El Cap 
if options.ignore_ssl_check: 
    AppKit.NSBundle.mainBundle().infoDictionary()['NSAppTransportSecurity'] = dict(NSAllowsArbitraryLoads = True) 

app = AppKit.NSApplication.sharedApplication() 

Jetzt können Sie Ihre Website herunterladen, ob der Bildschirmschoner läuft oder nicht und unabhängig davon, welche Fenster Fokus hat mit:

./webkit2png --ignore-ssl-check -W 800 -H 600 -F -o MYSITE http://www.lipsum.com/ 

Sie können mit Ihrer vorhandenen Applescript verwenden diese - nur setzen Sie Ihre "frame-" & i nach dem MYSITE Teil.

Sie werden wahrscheinlich brauchen statt ./webkit2png den vollständigen Pfad zu setzen, so abhängig, wo Sie das Skript speichern, können Sie so etwas wie /Users/Geonemec/webkit2png --ignore-ssl-check ...

Sie Hilfe, um es akzeptiert zu den Optionen zur Auswahl müssen, können durch Ausführen von:

webkit2png -h 
+0

Tut mir leid, ich bin nicht gewohnt mit github zu arbeiten. Ich habe den Quellcode gespeichert, da "webkit2png.py" meine Wurzel ist (zuerst ohne die 3 Zeilen hinzugefügt). Dann habe ich Terminal: iMACAlbin: ~ albinverhoeven $ python webkit2png.py -h File "webkit2png.py", Zeile 464 main() ^ IndentationError: erwartete einen gegliederter Block Ferner ist nicht klar, wie um es in mein Skript zu integrieren. Können Sie mir bitte erklären, was zu tun ist? Albin – Geonemec

+0

webkit2png läuft jetzt. So weit, ist es gut. Die Integration in mein Skript funktioniert noch nicht. Das ist mein Skript für jetzt: Satz dFolder auf "~/Desktop/screen /" tun Shell-Skript ("mkdir -p" & dFolder) Satz i auf 0 wiederholen 2 mal \t tell application ./ webkit2png --ignore-ssl-check -W 800 -H 600 -F-MYSITE "frame-" & i http://www.geonemec.be/Geo/PR/GC70Z34.php \t \t Verzögerung 60 - Warten Sie 60 Sekunden. \t Ende sagen \t Satz i bis i + 1 end repeat (Kommentar von Applescript: Erwarteter Ausdruck unbekannte Marke gefunden..) Was ist falsch? – Geonemec

0
set dFolder to "~/Desktop/screencapture/" 

do shell script ("mkdir -p " & dFolder) 

set i to 1 
repeat 2 times 
    set DeTijd to time string of (current date) 
    tell application "Terminal" 
     activate 
     do script ("webkit2png --ignore-ssl-check -F -o PR" & DeTijd & " " & "http://www.google.com") 
    end tell 
    delay 3600 -- Wait for 3600 seconds = 1 hour. 
    set i to i + 1 
end repeat 

Dies funktioniert gut. Tx für die Hilfe.

Verwandte Themen