从网站下载图片需要一些帮助

时间:2011-12-17 12:19:17

标签: php .net scripting

我正在寻找一些从网站下载图片的帮助。这是问题的细节。

网址是basvandenbroek dot com, 假设我们访问以下页面http://www.basvandenbroek.com/nl/product/27341/704/snaarinstrumenten/boston/snarenset_elektrisch.html

我们在这里有一个缩略图,当点击它带来更大的版本。我想用PHP脚本捕获更大的图像并将其下载到我的电脑上。

问题是,当我们检查HTML时,我们会看到以下代码的图像

../../../../../../../jpg/27000/27341.jpg
../../../../../../../jpg/cache/27000/220_220_27341.jpg

基于上面的代码,我假设如果我在网站地址开头附加 jpg/27000/27341.jpg我可以访问图片,但它不能正常工作。

我认为网址已隐藏,或者我可能无法正确理解内容。我是PHP和Scripting的新手,我希望有人帮助我解决这个问题。

谢谢

3 个答案:

答案 0 :(得分:0)

相对网址是相对于包含文档的网址的。因此,如果您正在抓取的文档位于http://example.com/foo/bar/baz/doc.html,并且图像被引用为 ../../omg/wtf/lol/cat.jpeg,其完整网址为http://example.com/foo/bar/baz/../../omg/wtf/lol/cat.jpeghttp://example.com/foo/omg/wtf/lol/cat.jpeg

顺便说一句,这与PHP或脚本一般无关,而是坚定的HTTP事物。在HTTP中没有“隐藏”的URL,这将是一个矛盾。

编辑:您的评论看起来问题出在您的请求中发送(或不发送)Referer标头或会话ID。

答案 1 :(得分:0)

对于您提到的网站,如果缩略图是

http://www.basvandenbroek.com/jpg/cache/27000/220_220_27341.jpg

然后

http://www.basvandenbroek.com/jpg/27000/27341.jpg

因此缩略图基本上是在不同文件夹中作为原件添加的尺寸(220 x 220)。此外,没有像隐藏的URL。任何在网页上有效的链接肯定会出现在html的源代码中。在chrome和firefox,atleat中,您可以通过右键单击链接并复制链接地址来找到此链接。

在您的情况下,您可以通过右键单击缩略图和原始网址来找到缩略图的网址。

但是,如果您想使用PHP自动执行此操作,则必须编写可以解析页面的html以确定网址的代码。

答案 2 :(得分:0)

在您的示例中,这里将是更大的图像: http://www.basvandenbroek.com/jpg/27000/27341.jpg 较小的图片位于: http://www.basvandenbroek.com/jpg/cache/27000/220_220_27341.jpg

这意味着您需要使用字符串操作来删除名称的前两个下划线部分(220_220)。您还希望将“cache /”替换为空字符串。