所以有人在 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?!
请有人帮我解决这个问题 - 我非常感谢任何人可能拥有的任何帮助或见解。