<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一個網址,說:
https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202
那不是圖像本身(沒有.jpg,.png文件)。 但是它確實引用了以下圖像文件:
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 ”)
如何從URL到JMP中的圖像?
我嘗試使用Internet Open()。 如果在Internet Open()中使用“作為文本”,則可以在該文本中找到.jpg引用。 但這似乎是一種獲取我想要的東西的非常複雜的方法。
是的,我錯過了真正的問題。
您可以從HTML提取URL,如下所示。
文字=打開(“ https://fieldagent.co.uk/client/lightbox/?public_id=20639c06-a6ed-5a4f-9436-d9cf9e41adf8&mt=7&g=329914&q=82202 ”);
hrefs = {};
nhrefs = 0;
拍子比賽(
文本,
(“ href =” |“ src=”)+(“'” |“ \!”“)>> quotechar + Pat Break(Expr(quotechar))>> hrefs [1 + nhrefs ++] + Expr(quotechar)+ Pat失敗()
);
顯示(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(...)使用第二個參數中的模式來解析第一個參數(即網頁的HTML)中的文本。該模式匹配href =或src=,後跟撇號或引號(存儲在Quotechar變量)。然後PatBreak(...)將所有內容匹配到break字符,即expr(quotechar)因為它需要quotechar的當前值,而不是PatMatch開始時的值。PatBreak()文本是不帶引號的URL,並存儲在列表中hrefs 。為了獲得好運,請匹配尾隨引號,然後使用PatFail()函數使模式匹配器一次又一次嘗試,直到文本用完為止。
末尾的奇數href來自

其中顯示了“和”嵌套。這也暗示了當涉及JavaScript時,這種Web抓取並不總是可行的……JavaScript將不會執行,也不會構建URL。但是,您要查找的.jpg在列表中(3次)。你可能會用
對於(i = 1,i <= nhrefs,i ++,
如果(結尾為(hrefs ,“。jpg”),寫(hrefs );打破(); );
);
抓住其中之一。
這錯過了Bea的實際問題。
她給出的第一個URL(來自fieldagent.co.uk)顯然是重定向到她給出的第二個URL(亞馬遜上)。 她需要一種JMP跟踪重定向並獲取關聯圖像的方法,現在看來,唯一的方法是首先以文本形式打開鏈接,然後查看鏈接是否包含重定向。 她希望有一個更簡單的解決方案。
新表(“圖片”,
新腳本(“下載圖片”,對於每一行(pic =打開(網址,“ png”);)),
新列(“ pic”,Expression),
新列(“ url”,
字符,
“名義”,
設定值({ 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 ”
})
)
);
下載腳本附在表中。不知道這些額外的URL將保留多長時間。“ png”確保打開生成圖像,它通常不需要匹配實際的圖像類型。“ jpg”或“ gif”也可以。如果沒有該額外參數,JMP可能會在操作系統的圖像查看器中打開圖像。