php cURL和Instagram照片

时间:2012-10-02 23:41:36

标签: php curl instagram

所以有人在Instagram上发送照片链接:http://instagr.am/p/QSVkR8LS3H/

这会从http://t.co/bOJ4EX2j重定向到http://instagr.am/p/QSVkR8LS3H/到照片所在的实际Instagram页面http://instagram.com/p/QSVkR8LS3H/

冷却。一切都很好,很好。现在我想要一个cURL按照推文链接下载最后一页,其中包含< img>这张照片。脚本看起来基本上是这样的:

 $target = 'http://t.co/bOJ4EX2j';

 $ch = curl_init();

 curl_setopt ($ch, CURLOPT_HTTPGET,        TRUE);
 curl_setopt ($ch, CURLOPT_POST,           FALSE);
 curl_setopt ($ch, CURLOPT_COOKIEJAR,      COOKIE_FILE);   // Defined Constant
 curl_setopt ($ch, CURLOPT_COOKIEFILE,     COOKIE_FILE);
 curl_setopt ($ch, CURLOPT_TIMEOUT,        CURL_TIMEOUT);  // Defined Constant
 curl_setopt ($ch, CURLOPT_USERAGENT,      WEBBOT_NAME);   // Defined Constant
 curl_setopt ($ch, CURLOPT_URL,            $target);       // Target site
 curl_setopt ($ch, CURLOPT_REFERER,        '');            // Referer value
 curl_setopt ($ch, CURLOPT_VERBOSE,        FALSE);         // Minimize logs
 curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);         // No certificate
 curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);          // Follow redirects
 curl_setopt ($ch, CURLOPT_MAXREDIRS,      4);             // Limit redirections to four
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);          // Return in string

# Create return array
$return_array['FILE']   = curl_exec($ch); 
$return_array['STATUS'] = curl_getinfo($ch);
$return_array['ERROR']  = curl_error($ch);

# Close PHP/CURL handle
curl_close($ch);

return $return_array;

现在这个脚本有更多的组件,但这只是cURL部分的一部分。现在,它确实设法吐回它落在图像所在的正确的最终页面http://instagram.com/p/QSVkR8LS3H/) - 但这就是$ return_array ['FILE']吐出的内容:

 500 Server Error

 An internal server error occurred.

即使你导航到浏览器中的页面,关闭了cookie,而没有登录Instagram(如果你的话),页面也会完全加载!

我到底错过了什么,不允许这个cURL脚本下载Instagram页面?!它适用于我尝试的几乎所有其他页面!只是没有Instagram.com?!

请有人帮助我解决这个问题的坚果 - 我非常感谢任何人可能提供的任何帮助或见解。

2 个答案:

答案 0 :(得分:1)

如果您在服务器而不是本地计算机上运行此代码,则服务器和Instagram.com之间可能存在配置错误的代理。检查本地计算机上的代码,确保它也可以在同一台计算机上的浏览器中使用

如果你得到这个工作,并发现,正如贾斯汀伍德所说,你有一个HTML页面,而不是你想要的图像,我可以帮助你使用一些PHP来获取图像URL(你可以拥有它)运行另一个cURL请求。)

答案 1 :(得分:0)

正如我们许多人所说,该代码似乎完全正常。我可以建议的是,确保错误报告已打开,然后检查基本目录中的PHP错误日志。

您可能还想检查是否在PHP.ini中启用了cURL模块。

不确定还有什么可能是错的。