<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho un URL, dì:
https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202
Questa non è un'immagine in sé (nessun file come .jpg, .png). Ma fa riferimento al seguente file immagine:
https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg
Questo riferimento al file potrei facilmente aggiungere a una colonna di espressione usando la formula:
Nuova immagine (Apri (" https://fieldagent-app.s3.amazonaws.com/capturedMedia/21/2015/189/pic_6dtx0NWjfPSH.jpg ")
Come posso passare dall'URL all'immagine in JMP?
Ho provato a utilizzare Internet Open (). Se utilizzo "come testo" in Internet Open (), posso trovare il riferimento .jpg in quel testo. Ma sembra un approccio molto complicato per ottenere ciò che voglio.
Sì, ho perso la vera domanda.
puoi estrarre gli URL dall'HTML, qualcosa del genere.
text = Apri (" https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202 ");
hrefs = {};
nhrefs = 0;
Pat Match (
testo,
("href =" | "src=") + ("'" | "\!" ") >> quotechar + Pat Break (Espr (quotechar)) >> hrefs [1 + nhrefs ++] + Espr (quotechar) + Pat Fallire()
);
Mostra (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 (...) utilizza il modello nel 2 ° argomento per analizzare il testo nel primo argomento (che è l'HTML della pagina web).Il modello corrisponde a href = o src=, seguito da un apostrofo o virgolette (che è memorizzato nel quotechar variabile).PatBreak (...) quindi abbina tutto fino al personaggio break, che è expr (quotechar) perché ha bisogno del valore corrente di quotechar, non del valore quando è iniziato PatMatch.Il testo PatBreak () è l'URL senza virgolette e viene memorizzato nell'elenco hrefs .Per buona fortuna, abbina le virgolette finali, quindi usa la funzione PatFail () per fare in modo che il pattern matcher riprovi finché il testo non è esaurito.
Lo strano href alla fine veniva da

che mostra i caratteri 'e "nidificazione.Suggerisce anche che questo tipo di web scraping non funzionerà sempre quando è coinvolto JavaScript ... JavaScript non verrà eseguito e non creerà gli URL.Ma il file .jpg che stai cercando è nell'elenco (3 volte).Potresti usare
per (i = 1, i <= nhrefs, i ++,
se (finisce con (hrefs , ". jpg"), scrivi (hrefs );rompere(); );
);
per prenderne uno.
Questo manca alla vera domanda di Bea.
Il primo URL che ha fornito (da fieldagent.co.uk) è apparentemente un reindirizzamento al secondo URL che ha fornito (su amazonaws). Ha bisogno di un modo per JMP per seguire il reindirizzamento e ottenere l'immagine associata e in questo momento sembra che l'unico modo per farlo sia aprire prima il collegamento come testo e vedere se contiene un reindirizzamento. Spera in una soluzione più semplice.
Nuova tabella ("immagini",
Nuovo script ("scarica immagini", per ogni riga (pic = Open (url, "png");)),
Nuova colonna ("pic", Expression),
Nuova colonna ("url",
Carattere,
"Nominale",
Imposta valori ({" 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 "
})
)
);
Lo script di download è allegato alla tabella.Non sono sicuro per quanto tempo quegli URL extra rimarranno attivi."png" assicura che open produca un'immagine, di solito non è necessario che corrisponda al tipo di immagine effettivo.Anche "jpg" o "gif" funzionano.Senza questo parametro aggiuntivo, JMP potrebbe aprire l'immagine in un visualizzatore di immagini per il tuo sistema operativo.