• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Bilder automatisiert herunterladen Skript

BlesstSnake

Jamba
Registriert
23.09.05
Beiträge
55
Hallo Leute.

Ich hab mir ziemlich was vorgenommen, stell ich fest.
Neulich, als ich Automator kennengelernt habe, dachte ich, es wäre doch toll, ein Skript zu basteln, das es mir ermöglicht, eine Webseite einzugeben (z.B. http://www.giantitp.com/comics/oots0001.html) und mir dann automatisch da den Comic auf die Platte saugt. Soweit so gut, das krieg ich hin.

Mein nächster Plan war, dieselbe Seite einzugeben und er geht automatisch zur Folgeseite (http://www.giantitp.com/comics/oots0002.html) und lädt den comic herunter. und das so oft, bis es die seite nicht mehr gibt. oder bis es die nächsten 5 Seiten nicht mehr gibt. und zwar nacheinander. Alle. egal, wie die Bilddatei heißt.

ich hab ziemlich schnell gemerkt, dass Automator mit zählen schon überfordert ist und bin zu Applescript gegangen. Dort hab ich mir ein script zusammengeschrieben, bei dem ich den ersten Teil der Adresse eingebe, den letzten Teil, die Zahl und die Endzahl und er spuckt mir einzeln die Webadressen aus. Allerdings fehlt mir damit zu meinem Plan noch ein ganzes Stück.

Denn wenn ich das Applescript in den Automator werfe, kann ich nur eine einzige Webseite ausgeben und das Bild dort runterladen.

Aber das klappt noch nicht mit mehreren.


Nun also meine Fragen:
-Weiß jemand, ob ich Variablen aus dem Automator in Applescript reinholen und hinterher (verändert) wieder ausspucken kann? Wenn ja, wie?
-Hat jemand Lust, mir bei dem Projekt zu helfen? Ich denke, dass da vieleviele Comics einfach mit runtergeladen werden könnten, nicht nur der von Order of the Stick.
-Kennt jemand eine Anleitung für das neue Automator samt Variablen?



Gruß, Blesstsnake

hier mein script:
Code:
set temp1 to display dialog "Enter Beginning of Adress" default answer "http://www.giantitp.com/comics/oots" buttons {"Stop", "Go"} default button "Go"
-- Hier wird die Eingabe des vorderen Teils der Webadresse angefordert
set buttonpressed1 to button returned of temp1
if buttonpressed1 is "Stop" then
	stop
else
	set urlVorn to text returned of temp1
	-- hier wird sie als "urlVorn" definiert
	set temp2 to display dialog "Enter ending of adress" default answer ".html" buttons {"Stop", "Go"} default button "Go"
	-- hier wird die Eingabe des hinteren Teils der Webadresse angefordert
	set buttonpressed2 to button returned of temp2
	if buttonpressed2 is "Stop" then
		stop
	else
		set urlHinten to text returned of temp2
		-- hier wird sie als "urlHinten" definiert
		set tempMiddle to display dialog "Number to start with (including all Zeros before the actual number)" default answer "0001" buttons {"Stop", "Go"} default button "Go"
		-- hier wird der Startzahlenwert abgefragt
		set buttonpressed1 to button returned of temp1
		if buttonpressed1 is "Stop" then
			stop
		else
			set urlMiddle to text returned of tempMiddle
			-- hier wird er als urlMiddle definiert
			set tempEnd to display dialog "Count until Number ..." default answer "42" buttons {"Stop", "Go"} default button "Go"
			-- Hier wird die letzte Zahl angefordert
			set buttonpressed4 to button returned of tempEnd
			if buttonpressed4 is "Stop" then
				stop
			else
				set EndNumber to text returned of tempEnd
				-- hier wird sie als "EndNumber" definiert
				repeat EndNumber - urlMiddle + 1 times
					-- hier wird wiederholt bis zur letzten Zahl
					set finalurl to urlVorn & urlMiddle & urlHinten
					display dialog finalurl
					-- hier wird die adresse angezeigt
					set urlNumberNew to urlMiddle + 1 as string
					set Diff to (length of urlMiddle) - (length of urlNumberNew)
					repeat Diff times
						set urlNumberNew to "0" & urlNumberNew
					end repeat
					-- hier werden Nullen vor die Ziffer gesetzt
					set urlMiddle to urlNumberNew
				end repeat
			end if
		end if
	end if
end if
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Reicht es nicht, das Comic-Archiv komplett mit SiteSucker herunter zu laden?

Edit: Die Comics sind ja nur GIF-Grafiken der Form http://www.giantitp.com/comics/images/oots0001.gif. Tut es nicht dann ein
Code:
curl -O "http://www.giantitp.com/comics/images/oots[0001-0042].gif"
im Terminal?
 

BlesstSnake

Jamba
Registriert
23.09.05
Beiträge
55
den curl-befehl kenn ich gar nicht...

aber abgesehen davon sind es leider nicht nur oots00xx.gif-dateien, sondern später werden die - vermutlich um einem ebensolchen automatisieren vorzubeugen - zu dateien der art fgcec2994hadbb21kjhbsxayxw.gif. Und da wird der befehl nicht mehr funktionieren, oder?

Der Sitesucker sieht vielversprechend aus. Zumal er anscheinend auch Applescripts benutzt. Vielleicht hilft mir das weiter. Danke dafür!
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Würde ich das laden wollen, nähme ich wahrscheinlich wget her und würde das komplette Archiv laden. Anschließend kann man auf der Platte in Ruhe die gifs suchen.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Ich korrigiere mich!

Ich würde mir ein perl script schreiben:
  1. lade (mit curl) http://www.giantitp.com/comics/oots.html
  2. Suche darin nach den Comic Links
  3. Teste, welche von denen ich schon habe
  4. Für jedes, noch nicht vorhandene
    1. Lade die HTML Seite mit curl
    2. Suche den GIF-Link
    3. Lade mit curl die Grafik und speichere sie unter der Nummer des Comics