<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可能会在操作系统的图像查看器中打开图像。