0

我一直在尝试解决这个问题大约一个星期,但无法提出一个好的解决方案。所以,我想我会看看是否有人可以帮助我。这是我试图抓取的链接之一:

http://content.lib.washington.edu/cdm4/item_viewer.php?CISOROOT=/alaskawcanada&CISOPTR=491&CISOBOX=1&REC=4

我右键单击以复制图像位置。这是复制的链接:

(因为我是新手,所以不能将其粘贴为链接) http:// content (dot) lib (dot)washton (dot) edu/cgi-bin/getimage.exe?CISOROOT=/alaskawcanada&CISOPTR=491&DMSCALE=100.00000&DMWIDTH =802&DMHEIGHT=657.890625&DMX=0&DMY=0&DMTEXT=%20NA3050%20%09AWC0644%20AWC0388%20AWC0074%20AWC0575&REC=4&DMTHUMB=0&DMROTATE=0

没有显示清晰的图像 URL。显然这是因为图像隐藏在某种类型的脚本后面。经过反复试验,我发现我可以将“.jpg”放在“CISOPTR=491”之后,然后链接就变成了一个图片网址。问题是这不是图像的高分辨率版本。要获得高分辨率版本,我必须进一步更改 URL。我发现很多文章@Stackoverflow.com 都提到了尝试使用 curl 和 PHP 构建脚本,我什至尝试了其中的一些但没有运气。“491”是图像编号,我可以更改该编号以在同一目录中查找其他图像。所以,抓取一个数字序列应该很容易。但我仍然是一个刮痧的菜鸟,而这个正在踢我的屁股。这是我尝试过的。

使用 cURL 获取远程图像然后重新采样

也试过这个。

http://psung.blogspot.com/2008/06/using-wget-or-curl-to-download-web.html

我也有 Outwit Hub 和 Site Sucker,但他们不将 URL 识别为图像文件,因此他们只是通过它。我一夜之间使用了 SiteSucker,它下载了 40,000 个文件,其中只有 60 个是 jpeg,没有一个是我想要的。

我一直遇到的另一件事是我能够手动下载的文件,文件名始终是 getfile.exe 或 showfile.exe,然后如果我手动添加“.jpg”作为扩展名,我可以在本地查看图像.

我怎样才能获得原始的高分辨率图像文件,并自动化下载过程,以便我可以抓取几百张这些图像?

4

1 回答 1

0

我右键单击以复制图像位置。这是复制的链接:

您注意到标题中有“.exe”。查看查询字符串中的内容:

DMSCALE=100.00000
DMWIDTH=802
DMHEIGHT=657.890625
DMX=0
DMY=0
DMTEXT=%20NA3050%20%09AWC0644%20AWC0388%20AWC0074%20AWC0575
REC=4
DMTHUMB=0
DMROTATE=0

强烈暗示该图像的原始来源在数据库或其他东西中,并且正在通过服务器端过滤器传递(不确定这是否是您所说的“某种脚本”的意思)。即,这是动态生成的内容,而不是静态的,并且同样的警告适用于动态文本内容:您必须弄清楚向服务器提供什么指令才能让它咳出您想要的内容。您几乎面前都有...如果 SiteSucker 或其他无法正确处理它,请使用 HTML 解析器自己抓取地址。

于 2012-05-05T09:13:45.777 回答