寫只爬蟲,把Unsplash的2W攝影素材扒個精光(內附下載地址)
02-04
事情的開端是這樣的,本人一直很喜歡高質量的攝影分享網站,常常混跡於http://500px.com等網站。很多國外攝影高手拍出來的片都非常漂亮,很值得讓人學習。我偶爾也會偷一兩張下來當桌面(大霧)。好的東西總想把它佔為己有是人之常情。可是這樣子盜圖是是不對的。幸運的是,我找到了一個幾乎同樣高端的攝影網站:http://Unsplash.com(Unsplash | Free High-Resolution Photos)。這個網站提供無限制的版權服務。也就是說,你可以使用網站的所有圖片做任何事情,包括商業用途。這簡直正中我下懷。放幾張圖感受下攝影師的水平。
![]()
推薦閱讀:
風景類:
剛發現這個網站時候我超級高興,畢竟無版權而又那麼高質量的圖片真的很難找。所以我決定寫個爬蟲,把照片都挪到自己的硬碟裡面。
然後折騰了兩天,走了一點彎路。和大家分享一下。最初的想法都是寫爬蟲的老套路了,按照以往經驗,基本上都是在python上用scrapy+urllib兩個模塊。首先拿到HTML文檔,用scrapy分析一下節點規則,用正則表達式把圖片的網址提取出來。再用urllib模塊進行下載。結果在分析HTML時候意外發現了網站的API(Unsplash | High-Resolution Photos),那問題就更簡單了。直接在網站上調用申請到的KEY就可以把圖片網址全部拿到了。然而我還是too naive,註冊好應用程序後API的調用次數是有限制的(見:https://unsplash.com/documentation#rate-limiting)。每個小時的請求量不得超過50個,那就有點讓人絕望了。看了一下文檔的其他內容,發現有個List Collections的功能(https://unsplash.com/documentation#list-photos),用JSON的格式返回照片列表。該API的GET的參數有page,per_page。嘗試枚舉,發現最大的per_page(每頁顯示的照片數量)為30張,page(頁碼)最大值為690,所以整站大概有2W張攝影作品。如果使用自己申請到的KEY進行查詢,完整獲得網站的攝影作品List需要大概14小時。由於網站作品的質量比較高,每張作品的大小大概在5MB左右,粗略估計整站攝影作品佔用的總空間為100GB左右。如果用自己的Key獲取List,那速度也太慢了,所以我希望能找到更快的解決方案。
正好Unsplash推出了一款名為Unsplash Instant的Chrome插件(地址:Unsplash Instant,需要翻牆進入Chrome商城)。覺得蠻有趣的,安裝了一個。fa60305aa82e74134cabc7093ef54c8e2c370c47e73152f72371c828daedfcd7n
那麼先把所有的List遍歷下來吧。
先上代碼為敬。爬完全部照片大小為125GB,無任何版權,請自由使用。
鏈接:http://pan.baidu.com/s/1cCazYu 密碼:lgug
還有,歡迎來Star呀~
<EOF>推薦閱讀:
※快速實現業務需求:不重複扣費
※有什麼比較好的Computer Graphics的國外論壇或國外課程介紹?
※C/C++中switch語句為什麼匹配到標籤後不跳出?
※初學者學ios編程的過程中,如何處理ios、xcode的版本差異?
※軟體開發到底是工程還是藝術,還是科學?