使用 PHP Curl 绕过热链接保护



我正在开发一个与我访问的论坛交互的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 放在那里时,这都有效。没问题,我可以看到图像,没有热链接保护。但是,一旦我将图像嵌入的URL放入文本中,热链接保护就会启动。

您可以使用

curl_setopt告诉cURL要发送什么引荐来源:

curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');

有关更多详细信息,请参阅文档,但这几乎就是全部内容

最新更新