2012-09-03 111 views
0

如何从网页下载所有图像并在图像名称前加上网页的URL(所有符号都用下划线替换)?如何根据网址下载图片并保存图片名称?

www_amazon_com_gp_product_B0029KH944_41RaFZ6S-0L._SL500_AA300_.jpg

我已经安装了WinHTTrack和wget:

例如,如果我是从http://www.amazon.com/gp/product/B0029KH944/下载所有图像,然后在主产品图像将使用这个文件名保存并花费了更多的时间,可能会让他们做我想做的事情,但我没有成功,所以Stack Overflow是我最后一次努力。 (如果您根据网站结构设置了保存文件的构建选项,并根据其父目录编写脚本来重命名文件,但WinHTTrack已关闭,但问题在于主图像托管在其他域中。)

回答

1

好吧,我为我的新Webscraper添加了一个下载选项。

有了,你可以做这样的:

xidel "http://rads.stackoverflow.com/amzn/click/B0029KH944" -e 'site:=translate(filter($_url, "http://(.*)", 1), "/.", "__")' -f //img -e 'image:=filter($_url, ".*/(.*)", 1)' --download '$site;$image;' 

首先-e读取URL并删除/。字符,-f选择所有图像,-e第二个读取文件名并--download下载它然后...

尽管它有一个缺点,它试图将每个图像解析为一个html文件,它下来有点...

+0

嗨贝尼贝拉,我刚刚下载xidel并运行您提供的命令;但是,它产生了以下错误:“错误未知选项:。(当读取参数:。”时)“ – 10basetom

+1

您使用的是Windows还是Linux?在Windows上,它不支持' - 在外层的单引号,并且你需要将'与'引用交换。我在发布答案后更改了默认变量名:两个$ _url变量现在应该是取而代之的是简单的$ url – BeniBela

+0

经过对所有文档的研究,并且经过多次反复试验,我认为我终于掌握了你的美妙和非常灵活的刮板,BeniBela :-)。下面是最终的命令我想在我的问题:'xidel http://www.amazon.com/dp/B0029KH944/ -e“site:= fn:replace(filter($ url,'http://(。+)',1 ),'\ W','_')“-f”// img [@ id ='prodImage']“-e”image:= filter($ url,'。+ /(。+)',1) “ - 下载”$ site; $ image;“' – 10basetom