【发布时间】:2012-06-16 23:33:17
【问题描述】:
我正在使用 PHP 下载/保存以下图片:
http://www.bobshop.nl/catalog/product_image.php?size=detail&id=42428
当您在浏览器中加载此图像时,您可以看到它,但是当我尝试使用几种不同的方法下载它时,我得到一个 1 KB 的文件,表明在服务器上找不到该产品。
我用file_put_contents 和curl 的方式都试过了。
我什至使用了在 StackOverflow 上找到的函数 get_web_page 来捕捉可能的重定向。
您可以在浏览器中看到图像但无法下载它的其他原因可能是什么?
更新:
由于在尝试不同的答案时抛出了一个错误,我才发现了问题的真正原因。在抓取 html 的过程中,URL 得到了 & 而不是 & 。我现在替换了这些,其他所有方法现在也可以使用...谢谢大家!
【问题讨论】:
-
可能有一些标头检查来验证请求者实际上是浏览器。为什么不尝试使用 Google Chrome 请求图像并打开检查器?转到网络选项卡。刷新页面。复制发送的标头并将其与 cURL 一起使用。
-
我猜他们有防止下载的保护措施,可能是通过检查用户代理字符串
-
你甚至可以更进一步,玩转标题,看看哪个组合会返回图像,哪个组合会返回错误消息。
标签: php curl download imagedownload