Flickr是雅虎旗下的圖片分享網站,上面有全世界網友分享的大量精彩圖片,被認為是專業的圖片網站。其API也很友好,可以實現多種功能。這裡我使用了Python呼叫其API獲得了大量的照片資料。需要注意的是,要想登入其網站,註冊成為開發者,並呼叫其API,需要FQ。但獲得的url可以不FQ檢視。
首先需要先去Flickr註冊成為其開發者,建立應用,獲得API_KEY和API_SECRET,其API網址在:https://www.flickr.com/services/api/
Flickr提供了多種開發工具進行使用。這裡使用Python開發工具。官方推薦的開發工具是Beej’s Python Flickr API. https://stuvel.eu/flickrapi
可以直接使用pip安裝工具進行安裝,輸入flickrapi即可自動安裝好。
官方文件在這裡:https://stuvel.eu/flickrapi-doc/
爬取照片資料最好的方法是使用其walk方法。這個方法實質上是呼叫了flickr.photos.search的介面,各種引數可以參見該API的介紹:https://www.flickr.com/services/api/flickr.photos.search.html
用好這個方法,輸入不同的引數,就可以滿足大部分資料探勘的需要,包括時間、地理位置、照片型別等。
這裡貼上一段簡單的程式碼,僅供參考:
1 #coding:utf-8 2 import flickrapi 3 #輸入API的key和secret 4 flickr=flickrapi.FlickrAPI(api_key,api_secret,cache=True) 5 try: 6 #爬取text為'New York'的照片,這裡可以根據自己的需要設定其它的引數 7 photos=flickr.walk(text='New York',extras='url_c') 8 except Exception as e: 9 print('Error') 10 for photo in photos: 11 #獲得照片的url,設定大小為url_c(具體引數請參看FlickrAPI官方文件介紹) 12 url=photo.get('url_c') 13 print(str(url))
需要注意的地方在於,倘若出現迴圈的情況,可能是因為資料量太大,因此需要加一些限制條件限制,例如一次呼叫只呼叫一段時間內的資料,再分批次挖掘資料。