是否可以通過api調用或某些腳本從flickr URL獲取靜態圖像URL?
對於如:
Flickr的URL - >http://www.flickr.com/photos/[email protected]/2658147888/in/set-72157606175084388/
靜態圖像URL - >http://farm4.static.flickr.com/3221/2658147888_826edc8465.jpg如何從flickr網址獲取靜態圖片網址?
回答
在您的Flickr網址中,照片ID爲2658147888.您可以使用flickr.photos.getSizes來獲取各種尺寸的照片,並根據尺寸選擇所需的網址。有幾種訪問API的方法,請指定是否需要特定語言的更多詳細信息。
謝謝!這正是我所期待的。 – 2009-11-26 13:06:06
謝謝,我也是!一點也不明顯,如果任何flickr api調用會給出真正的靜態圖像鏈接。 – cboettig 2012-03-02 00:49:05
有了指定extras=url_o
你得到一個鏈接到原始圖像:
https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=YOURAPIKEY&format=json&nojsoncallback=1&text=cats&extras=url_o
對於縮小圖像,可以使用以下參數:url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l
或者,你可以構造URL as described:
http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg
or
http://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}_[mstzb].jpg
下面是我編寫的一些代碼,用於從Flickr照片中檢索元數據:ID:
我首先定義一個JavaScript對象FlickrPhoto
來保存照片的元數據:
function FlickrPhoto(title, owner, flickrURL, imageURL) {
this.title = title;
this.owner = owner;
this.flickrURL = flickrURL;
this.imageURL = imageURL;
}
然後我創建了一個FlickrService
對象來保存對REST風格的API我Flickr API Key和我所有的Ajax調用。
的getPhotoInfo
函數採用照片ID作爲參數,構造相應的AJAX調用和傳遞一個包含照片的元數據以一個回調功能的FlickrPhoto
對象。
function FlickrService() {
this.flickrApiKey = "763559574f01aba248683d2c09e3f701";
this.flickrGetInfoURL = "https://api.flickr.com/services/rest/?method=flickr.photos.getInfo&nojsoncallback=1&format=json";
this.getPhotoInfo = function(photoId, callback) {
var ajaxOptions = {
type: 'GET',
url: this.flickrGetInfoURL,
data: { api_key: this.flickrApiKey, photo_id: photoId },
dataType: 'json',
success: function (data) {
if (data.stat == "ok") {
var photo = data.photo;
var photoTitle = photo.title._content;
var photoOwner = photo.owner.realname;
var photoWebURL = photo.urls.url[0]._content;
var photoStaticURL = "https://farm" + photo.farm + ".staticflickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + "_b.jpg";
var flickrPhoto = new FlickrPhoto(photoTitle, photoOwner, photoWebURL, photoStaticURL);
callback(flickrPhoto);
}
}
};
$.ajax(ajaxOptions);
}
}
然後,您可以使用該服務如下:
var photoId = "11837138576";
var flickrService = new FlickrService();
flickrService.getPhotoInfo(photoId, function(photo) {
console.log(photo.imageURL);
console.log(photo.owner);
});
希望它能幫助。
下面一個解決方案,而使用的Flickr的API,只有標準的Linux命令(其實我Cygwin運行它在MS Windows):
- 把你的網址列表中TMP變量
- 如果您正在下載的私人照片和我一樣,該協議將是HTTPS和你需要的身份驗證Cookie傳遞給wget的。我登錄了瀏覽器(Chrome),並使用extension
- 如果訪問公開網址,只是刪除了參數--load餅乾餅乾$
- 在本地文件夾中的腳本下載導出的餅乾文件在他們原始格式
- 照片如果你想靜態圖像的只是URL,刪除最後一個命令| xargs的wget的--load餅乾餅乾$
這裏的腳本,你可以使用它作爲一個開始你的探險:
cookies=~/cookies.txt
root="https://www.flickr.com/photos/[email protected]/"
tmp="https://www.flickr.com/photos/[email protected]/29765108124/in/album-72157673986011342/
https://www.flickr.com/photos/[email protected]/29765103724/in/album-72157673986011342/
https://www.flickr.com/photos/[email protected]/29765102344/in/album-72157673986011342/"
while read -r url; do
if [[ $url == http* ]] ;
then
url2=$root`echo -n $url | grep -oP '(?<=https://www.flickr.com/photos/[email protected]/)\w+'`/sizes/o
wget -q --load-cookies $cookies -O - $url2 | grep -io 'https://c[0-9].staticflickr.com.*_o_d.jpg' | xargs wget --load-cookies $cookies
fi
done <<< "$tmp";
- 1. 如何獲取動態谷歌地圖網址(有靜態地圖網址)
- 2. 從外部網址獲取圖片的網址
- 3. Flickr的圖片網址後綴中500
- 4. 如何使用urllib2從動態網址獲取圖片?
- 5. 從picasa獲取圖片直接網址
- 6. Laravel 4從網址獲取圖片
- 7. 使用AsyncTask從網址獲取圖片
- 8. 從網址獲取多個圖片
- 9. 從內容中獲取圖片網址
- 10. 從rss feed獲取圖片網址?
- 11. 從字符串獲取圖片網址
- 12. 從GMSPlace獲取圖片網址
- 13. 從Pinterest網址獲取所有圖片
- 14. 從長網址獲取短網址
- 15. 如何將動態網址重定向到靜態網址?
- 16. 如何將動態網址變爲靜態網址
- 17. 圖片網址
- 18. 是否可以從圖片網址中提取Facebook Graph網址?
- 19. 如何獲取網址的片段?
- 20. Python 3:如何提取網址圖片?
- 21. 獲取小尺寸圖片網址
- 22. 獲取臉書簡介圖片網址
- 23. 獲取背景圖片的網址值
- 24. 在Java中獲取jLabel圖片網址
- 25. 無JSON獲取圖片網址
- 26. 上傳圖片並獲取網址
- 27. 獲取Wordpress附件圖片網址
- 28. android獲取picasa圖片網址
- 29. 動態網址爲靜態
- 30. 如何使用Google靜態地圖API獲取地圖圖片的靜態網址?
是的,真的老了。但是,如果你和我一樣,仍然會在這裏結束後,谷歌搜索,看看這個鏈接:http://www.flickr.com/services/api/misc.urls.html – 2012-09-27 23:39:37