【发布时间】:2015-03-27 16:14:21
【问题描述】:
我正在开发一个与我访问的论坛交互的 Android 应用程序。论坛的工作人员允许使用此应用,但不会提供可使用的 API。
为了获得我需要的信息,我使用了一个中间 PHP 脚本,它使用 CURL 抓取论坛。一切都很好,除了一个小细节。
要查看主题,我会抓取所有我需要的数据,例如海报名称、日期和帖子内容。但由于存储在他们服务器上的图像受热链接保护,我无法看到它们。有趣的是,查看单个图像是没有问题的,但只要将它们放在上下文中,它们就会被网站的版权图像所取代。
我感觉网站更改了我发送的 HTTP 引用(为空),因此以版权图像响应(热链接保护)。
谁能给我一些提示如何解决这个问题?
我使用的代码:
$url = 'someurliwanttoscrape';
$cookie_string = 'somecookies';
$useragent = 'someuseragent';
$timeout = 60;
$rawhtml = curl_init();
curl_setopt ($rawhtml, CURLOPT_URL,$url);
curl_setopt ($rawhtml, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($rawhtml, CURLOPT_REFERER, '');
curl_setopt ($rawhtml, CURLOPT_COOKIE, $cookie_string);
curl_setopt ($rawhtml, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt ($rawhtml, CURLOPT_USERAGENT, $userAgent);
$output = curl_exec($rawhtml);
curl_close($rawhtml);
每当我将图像的网址放入其中时,这都有效。没问题,我可以看到图像,没有防盗链。但只要我将图片嵌入的 URL 放入文本中,热链接保护就会启动。
【问题讨论】:
-
弄清楚热链接保护的工作原理并破坏它。如果是推荐人,则对其进行欺骗。很简单。
-
如果我们能看到真实世界的样本(如论坛)会有所帮助
-
它与论坛开发人员确认的推荐人以及我的结果一起使用。正如我所看到的个别图像。为了隐私,我宁愿不分享论坛。还有w.r.t。员工的意愿。
标签: php curl hotlinking spoofing referer