首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP Curl绕过防盗链

使用PHP Curl绕过防盗链
EN

Stack Overflow用户
提问于 2015-01-29 00:45:41
回答 1查看 2.4K关注 0票数 1

我正在开发一个android应用程序,它可以与我访问的论坛进行交互。该论坛的工作人员允许此应用程序,但不提供使用的API。

为了获得我需要的信息,我使用了一个中间的PHP脚本,它用CURL抓取论坛。除了一个小细节之外,一切都工作得很好。

为了查看主题,我收集了所有需要的数据,如海报名称、日期和帖子内容。但由于存储在他们的服务器上的图像是防盗链保护的,我无法看到它们。有趣的是,查看单独的图像是没有问题的,但只要将它们放在上下文中,它们就会被网站的版权图像所取代。

我感觉网站更改了我发送的HTTP引用(它是空的),并因此使用版权图像(防盗链保护)进行响应。

有人能给我一些如何解决这个问题的建议吗?

我使用的代码是:

代码语言:javascript
复制
$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放进去,防盗链就会生效。

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 01:19:36

您可以使用curl_setopt告诉cURL发送哪个referrer:

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28197736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档