<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe eine URL, sagen wir:
https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202
Das ist kein Bild selbst (keine Datei wie .jpg, .png). Es bezieht sich jedoch auf die folgende Bilddatei:
https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg
Diese Dateireferenz könnte ich mit der folgenden Formel leicht zu einer Ausdrucksspalte hinzufügen:
Neues Bild (Öffnen (" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ")
Wie komme ich von der URL zum Bild in JMP?
Ich habe versucht, Internet Open () zu verwenden. Wenn ich in Internet Open () "als Text" verwende, kann ich die JPG-Referenz in diesem Text finden. Aber das scheint ein sehr komplizierter Ansatz zu sein, um das zu bekommen, was ich will.
Ja, ich habe die eigentliche Frage verpasst.
Sie können die URLs aus dem HTML-Code extrahieren.
text = Open (" https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202 ");
hrefs = {};
nhrefs = 0;
Pat Match (
Text,
("href =" | "src=") + ("'" | "\!" ") >> quotechar + Pat Break (Ausdruck (quotechar)) >> hrefs [1 + nhrefs ++] + Ausdruck (quotechar) + Pat Scheitern()
);
Show (nhrefs, hrefs);
nhrefs = 14;
hrefs = {"/site_media/images/public/favicon.ico",
"/site_media/js/jquery-1.7.2.min.js",
"/site_media/js/jquery-ui-1.8.custom.min.js",
"/site_media/js/jquery.query-2.1.7.js",
"/site_media/js/jquery.cookie.js",
"/site_media/js/jquery.lightbox-0.5.min.js",
"/style/css/jquery_theme/jquery-ui-1.8.custom.css",
"/style/css/lightbox.css",
"/style/css/jquery.lightbox-0.5.css",
"" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ",
"" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ",
"" http://maps.google.com/maps?q=51.54,-0.00 ",
"" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ",
"\!" + gaJsHost + \! "stats.g.doubleclick.net/dc.js"};
PatMatch (...) verwendet das Muster im 2. Argument, um den Text im ersten Argument (dem HTML-Code der Webseite) zu analysieren.Das Muster entspricht entweder href = oder src=, gefolgt von einem Apostroph oder einem Anführungszeichen (das in der gespeichert ist quotechar Variable).PatBreak (...) ordnet dann alles dem Break-Charakter zu Ausdruck (quotechar) weil es den aktuellen Wert von quotechar benötigt, nicht den Wert, als PatMatch begann.Der PatBreak () - Text ist die URL ohne Anführungszeichen und wird in der Liste gespeichert hrefs .Passen Sie zum Glück das nachfolgende Anführungszeichen an und verwenden Sie dann die Funktion PatFail (), damit der Pattern Matcher es immer wieder versucht, bis der Text aufgebraucht ist.
Das seltsame href am Ende kam von

welches die 'und "Verschachtelung zeigt.Es wird auch darauf hingewiesen, dass diese Art von Web-Scraping nicht immer funktioniert, wenn JavaScript beteiligt ist. Das JavaScript wird nicht ausgeführt und die URLs werden nicht erstellt.Die gesuchte JPG-Datei befindet sich jedoch in der Liste (dreimal).Sie könnten verwenden
für (i = 1, i <= nhrefs, i ++,
if (endet mit (hrefs , ". jpg"), schreibe (hrefs );Unterbrechung(); );
);
einen von ihnen zu schnappen.
Dies übersieht Bea's eigentliche Frage.
Die erste URL, die sie angegeben hat (von fieldagent.co.uk), ist anscheinend eine Weiterleitung zu der zweiten URL, die sie angegeben hat (auf amazonaws). Sie benötigt eine Möglichkeit zu JMP, um der Umleitung zu folgen und das zugehörige Bild zu erhalten. Im Moment scheint es die einzige Möglichkeit zu sein, den Link zuerst als Text zu öffnen und zu prüfen, ob er eine Weiterleitung enthält. Sie hofft auf eine einfachere Lösung.
Neue Tabelle ("Bilder",
Neues Skript ("Bilder herunterladen", Für jede Zeile (Bild = Öffnen (URL, "PNG");)),
Neue Spalte ("Bild", Ausdruck),
Neue Spalte ("url",
Charakter,
"Nominal",
Werte einstellen ({" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ",
"" https://community.jmp.com/servlet/JiveServlet/downloadImage/38-1224-11190/Pleiades.png ",
"" https://community.jmp.com/servlet/JiveServlet/showImage/38-1218-11084/progress.PNG ",
"" https://community.jmp.com/servlet/JiveServlet/showImage/38-1195-10392/map.png ",
"" https://community.jmp.com/servlet/JiveServlet/showImage/38-1176-10134/wallPaper.png ""
})
)
);
Das Download-Skript ist an die Tabelle angehängt.Ich bin mir nicht sicher, wie lange diese zusätzlichen URLs aktiv bleiben."png" stellt sicher, dass open ein Bild erzeugt. Es muss normalerweise nicht mit dem tatsächlichen Bildtyp übereinstimmen."jpg" oder "gif" funktionieren auch.Ohne diesen zusätzlichen Parameter kann JMP das Bild in einem Bildbetrachter für Ihr Betriebssystem öffnen.