Tut mir leid, aber es funktioniert immernoch nicht. Und ich bleibe bei der Meinung das es am Tool liegt, da es mir ja am Ende die Möglichkeit gibt die fehlerhaften Bilder in die Zwischenablage zu kopieren und dort alle Dateinamen auftauchen. Das es nicht funktioniert hat kann das Tool ja nur wissen wenn der Fehler VOR der Übergabe an das Exiftool auftritt, das Programm kriegt nach der Übergabe ja so oder so keine Rückmeldung vom Exiftool.
Beiträge von DrSchuh
-
-
könntest du mir nochmal deine kompilierte Exe zur Verfügung stellen? Vielleicht ist das irgendwo bei mir der Wurm drin. Vielen Dank!
P.S.: Welche InternetExplorer Version benutzt du?
-
Das zeigt es bei mir an bei 3 Testbildern:
Failed: shutterstock_*BILDNUMMER*.jpg
Failed: shutterstock_*BILDNUMMER*.jpg
Failed: shutterstock_*BILDNUMMER*.jpg*BILDNUMMER* ist von mir eingefügt, da stand der Dateiname der Bilder. Es ändert an den Dateien rein gar nichts, es wird nichts geschrieben.
-
Der Fehler muss immernoch irgendwo in deinem Code bei der Übergabe liegen. Da das Programm ja am Ende erkennt das es nicht erfolgreich ausgeführt wurde kann es nicht an Exiftool liegen, da du von dort kein Feedback kriegst ob es richtig geschrieben wurde oder nicht. Testweise habe ich mal nachdem ich den Pfad zum Exiftool angegeben hab das Exiftool gelöscht, das merkt as AutoIt Script noch nichtmal und macht einfach weiter wie bisher. Es stehen immernoch die 50€ aus wenn du Lust hast dich nochmal dahinter zu klemmen.
-
Das exiftool ist dafür zuständig die ausgelesenen Keywords in die Datei als Exif-Daten zu speichern (auslesbar z.B. über rechte Maustaste-> Eigenschaften -> Details: Markierungen). Der Pfad der an das Exiftool übergeben wird scheint korrekt zu sein, wenn ich ihn so wie du ihn eingefügt hast bei mir direkt auf das exiftool laufen lassen aktualisiert er die Datei auch richtig. Irgendwo ist der Fehler beim starten des Exiftools.
Wenn ich dein Beispiel (mit auf meinen Rechner angepassten Pfaden) in die Windows-Befehlszeile eingebe funktioniert alles richtig und er ändert das JPG. Da er ja aber das Script schon selbst erkennt das es nicht funktioniert (weil immer das else $failedPictures eintritt) muss es irgendwie am Programmaufruf des Exiftool liegen. Kannst du dir das vielleicht nochmal anschauen? Gerne können wir auch mal telefonieren, vielleicht macht es die Sache einfacher. Schonmal vielen Dank für deine Bemühungen!
-
Bei mir passiert mit den Beispieldateien gerade gar nichts obwohl das Tool anzeigt "Die Bilder wurden erfolgreich bearbeitet". Evtl. läd sich irgendein String bei meinem Compiler nicht richtig, kannst du mir evtl. deine Exe zur Verfügung stellen? Danke!
-
Irgendwie stimmt da immernoch etwas nicht. Ich hab jetzt 3 Bilder in einem Testordner, die Bilder können händisch alle nach diesem Schema aufgerufen werden:
http://www.shutterstock.com/pic-"BILDNUMMER".html"Ich glaube der Fehler steckt in dieser Zeile:
$oLinks2 = _IEGetObjById ($oIE, "display-pic-description")
$bildNAME = _IEPropertyGet($oLinks2, "innertext")Da es auf der Seite kein <div> mit der id="display-pic-description" gibt schlägt der Vorgang fehl
tatsächlich müsste es wohl irgendwie so sein:
$oLinks2 = _IEGetObjById ($oIE, "kw_*WILDCARD-starte mit 1 und zähle hoch bis Ende*")
$bildNAME = _IEPropertyGet($oLinks2, "innertext")da der Tag den er auslesen muss so aussieht, das gesuchte keyword habe ich rot markiert:
<a id="kw_1" href="/de/s/vektor/search.html">vektor</a>
und dann kommt der nächste tag mit der kw_2
<a id="kw_2" href="/de/s/fahrzeuge/search.html">fahrzeuge</a>und das müsste er machen bis alle kws abgefragt sind. Bei der alten Website hatten alle Keywords die selbe ID, das ist hier leider nicht mehr der Fall.
Ich hab dir hier mal 3 Testbilder reingepackt, schau mal ob das bei dir mit denen durchläuft:
-
Der Dateinamen stimmt, es wird auch die korrekte Website im Internet Explorer geöffnet, allerdings stürzt dann das Programm ab mit der Fehlermeldung:
(158) : ==> Subscript used on non-accessible variable.:
$ar2=_StringBetween($ar[0],'>','<')
$ar2=_StringBetween($ar^ ERRORClipPut war schon drinnen im Code, nach dem Absturz ist die Zwischenablage aber leer. Kannst du evtl. mal das bei dir funktionierende Programm als EXE zur Verfügung stellen, nicht das es sich hier um einen Compiler-Fehler handelt?
Es kann wohl tatsächlich vorkommen das es die Seite zu einem Bild nicht gibt ("Dieses Bild ist nicht mehr verfügbar") dann sollte das Programm aber eigentlich die Datei einfach überspringen und mit der nächsten weiter machen.
Vielen Dank!
-
Überprüf mal, was in $html steht... Ich vermute, dass das leer sein wird... (msgbox(48,"",$html).
Vermutung: Falscher Bildname. Stand auf der Seite... andernfalls sind die Seiten nicht alle gleich aufgebaut.Habe ich gerade nochmal händisch überprüft, die Seiten sind alle gleich aufgebaut, nur mit unterschiedlicher Anzahl von Keywords falls das was ausmacht?
-
Danke für deine Korrektur Nuts, jetzt schmeisst es aber einen Fehler: ""Func" statement has no matching "EndFunc"
ich habe aber sicher das EndFunc mit reinkopiert ... -
Danke nuts, dann passt der Syntax-Check, dafür kommt jetzt dieser Fehler beim Go:
"C:\shutter_exif\shutterstock.au3" (158) : ==> Subscript used on non-accessible variable.:
$ar2=_StringBetween($ar[0],'>','<')
$ar2=_StringBetween($ar^ ERROR
>Exit code: 1 Time: 17.05Und hier die fehlerhafte Zeile im Code:
[autoit]$ar=_StringBetween($html,'<div id="image_keyword_container" class="section_content secondary_links">','</div>')
[/autoit]
$ar2=_StringBetween($ar[0],'>','<')
for $i=0 to UBound($ar2)-1 step 2
$keywords=$keywords&$ar2[$i]&', ' -
ich hab jetzt mal probiert den alten Code zu nehmen und nur den geänderten Teil für die Keywords von dir übernommen, dann beendet er einfach das Tool ohne Meldung. Beim Syntax-Check merkt er an:
"C:\exif_tool\shutterstock.au3"(156,111) : error: _StringBetween(): undefined function.
$ar=_StringBetween($html,'<div id="image_keyword_container" class="section_content secondary_links">','</div>') -
Jetzt startet zwar der IE und es zeigt keine Fehlermeldung mehr sondern die Meldung "Die Bilder wurden erfolgreich bearbeitet" - aber passiert ist nix. Es startet auch nur der IE in about:blank und läd dann keine anderen Seiten nach.
-
Vielen Dank für deine schnelle Hilfe, allerdings funktioniert irgendwas noch nicht ganz, Fehlermeldung nach dem ersten Bild:
---------------------------
AutoIt Error
---------------------------
Line 9410 (File "C:\shutterstock.exe"):Error: Subscript used on non-accessible variable.
---------------------------
OK
---------------------------Beim Original öffnet sich IE, aktuell öffnet sich gar nix vor der Fehlermeldung
-
Hallo zusammen,
ich bin über Google auf ein Programm gestossen das genau macht was ich suche, dort gibt es auch den offenen Quellcode zum Download
http://www.krupik.com/2010/09/18/shu…ten-ubernehmen/Allerdings ist das Tool von 2010 und die Struktur der Internetseite die ausgelesen wird hat sich geändert. Die auszulesenden Daten (in diesem Biepsiel "art" und "kunst" sind jetzt nicht mehr so aufgebaut:
<span id="keywords-listing">
<a class="middlelink" href="/s/art/search.html" x_shutterstock_keyword="art">art</a>
<a class="middlelink" href="s/art/search.html" x_shutterstock_keyword="kunst">kunst</a>sonder so:
<div id="image_keyword_container" class="section_content secondary_links">
<a id="kw_1" href="/de/s/art/search.html">art</a>
<a id="kw_2" href="/de/s/kunst/search.html">kunst</a>Da die Sprache der Website durch Cookies festgelegt wird (bei gleichbleibendem Link) und die Geschwindigkeit von IE zu wünschen übrig lässt wäre es super wenn es evtl. möglich wäre das auslesen über den Firefox statt den IE laufen zu lassen.
Kann mir jemand weiterhelfen?
Als Vergütung würde ich mal 50€ vorschlagen
(da es sich meiner Meinung nach "nur" um einem schnellen Fix handelt für jemand der sich mit dem AutoIt-Syntax auskennt)Falls ich mit meiner Schätzung des Aufwands vollkommen daneben liege würde ich mich über eine PN mit realistischeren Preisvorstellungen freuen. Vielen Dank!