[英]php cURL and Instagram Photos
因此,有人在Twitter上發布了指向照片的鏈接: 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 ?!
請有人幫助我解決這個問題–非常感謝任何人提供的幫助或見識。
如果您在服務器而不是本地計算機上運行此代碼,則服務器和Instagram.com之間可能存在一些配置錯誤的代理。 檢查您本地計算機上的代碼,確保它也可以在同一台計算機上的瀏覽器中使用 。
如果您能正常工作,並且如Justin Wood所述,發現您擁有一個HTML頁面而不是所需的圖像,那么我可以幫助您使用一些PHP獲取圖像URL(然后您必須為此運行另一個URL)。 cURL請求)。
正如我們許多人所說的那樣,該代碼似乎運行良好。 我只能建議您確保錯誤報告已打開,然后在基本目錄中檢查PHP錯誤日志。
您可能還需要檢查PHP.ini中是否啟用了cURL模塊。
不知道還有什么可能是錯誤的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.