我正在开发一个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放进去,防盗链就会生效。
发布于 2015-01-29 01:19:36
您可以使用curl_setopt告诉cURL发送哪个referrer:
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');有关更多详细信息,请参阅documentation,但这几乎就是全部内容
https://stackoverflow.com/questions/28197736
复制相似问题