如何阻止图像被 file_get_contents 或 wget 抓取,以及如何应对?

How to block images from being scraped by file_get_contents or wget, and how to counter it?

我的客户在新浪博客上写博客,她只对新浪博客的编辑感到满意。因此,在她提交博客后,我使用一个小片段将图像和文本抓取到她自己的博客网站上。它的核心是

$url = 'http://s5.sinaimg.cn/bmiddle/001MEJWgzy7xxRaXmDyd4&690';
$img_data = @file_get_contents($url);
$img = file_put_contents('1.jpg',$img_data);

虽然听起来很奇怪,但它确实运行良好并为我们节省了大量时间。但是最近图像变成了空白,带有一些水印。我想新浪终于发现了我们的小伎俩并阻止了图像被抓取。我只是很好奇该区块是如何进行的,更重要的是,是否有解决方法?我试过使用 wget http://s5.sinaimg.cn/bmiddle/001MEJWgzy7xxRaXmDyd4&690 它也只能得到空白图像。

只是一个建议 - 网站检测爬虫的最简单(也是最可能)的方法是查看请求 headers,最常见的是 "Accept","Referrer" 和 "User-Agent"。您可以尝试复制 "real" 浏览器发送的值并将它们插入 wget 调用,如下所示:

希望对您有所帮助!