王金峰 李世良 王明 羅星宇 張雪玉
【摘 要】如今的互聯(lián)網(wǎng)已然進(jìn)入大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)上有數(shù)以百計(jì)的圖片,圖片網(wǎng)絡(luò)爬蟲(chóng)可以通過(guò)既定的規(guī)則自動(dòng)地抓取互聯(lián)網(wǎng)上的圖片并下載至本地存儲(chǔ),通過(guò)對(duì)國(guó)內(nèi)外各大圖片網(wǎng)站的調(diào)查研究,決定以國(guó)外網(wǎng)站Flickr為對(duì)象通過(guò)Python程序設(shè)計(jì)語(yǔ)言來(lái)實(shí)現(xiàn)獲取高質(zhì)量的,準(zhǔn)確的,完整的圖片和信息。最終成功實(shí)現(xiàn)了對(duì)Flickr網(wǎng)站上的圖片按照檢索的字段,批量爬取圖片信息并下載圖片的程序。
【關(guān)鍵詞】Python ;網(wǎng)絡(luò)爬蟲(chóng) ;Flickr ;多線程;圖片
【Keywords】Python; web crawler; Flickr; multithreading; picture
【中圖分類號(hào)】X87? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文章編號(hào)】1673-1069(2019)01-0182-02
1 引言
隨著大數(shù)據(jù)時(shí)代的到來(lái),大數(shù)據(jù)具有數(shù)據(jù)體量巨大 (Volume) 、數(shù)據(jù)類型繁多 (Variety) 、價(jià)值密度低 (Value) 、處理速度快 (Velocity) 的特點(diǎn)[1]。面對(duì)人們?cè)絹?lái)越多樣的需求[2],可以根據(jù)自己的實(shí)際需求, 繼續(xù)修改程序來(lái)達(dá)到自己的要求[3]。程序按照一個(gè)檢索詞列表進(jìn)行批量爬取,并把圖片信息存入數(shù)據(jù)庫(kù)中。本文提供了一個(gè)通過(guò)Python調(diào)用Flickr API實(shí)現(xiàn)通過(guò)關(guān)鍵字檢索獲取圖片信息并批量下載的程序。
2 相關(guān)技術(shù)
2.1 Python
Python是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,是一種動(dòng)態(tài)的、面向?qū)ο蟮哪_本語(yǔ)言。Python語(yǔ)言的一大優(yōu)勢(shì)就是其語(yǔ)法簡(jiǎn)潔清晰,并具有豐富和強(qiáng)大的類庫(kù)[5],這為程序的編寫(xiě)提供了極大的便利使得數(shù)據(jù)抓取工作變得生動(dòng)有趣[6],從而簡(jiǎn)化了程序。
2.2 Flickr API
Flickr是雅虎旗下的圖片分享網(wǎng)站,上面有全世界網(wǎng)友分享的大量精彩圖片,被認(rèn)為是專業(yè)的圖片網(wǎng)站。
3 爬蟲(chóng)系統(tǒng)工作
系統(tǒng)分為兩部分:第一部分即調(diào)用Flickr API獲取圖片等數(shù)據(jù),第二部分即根據(jù)數(shù)據(jù)庫(kù)中的圖片Url下載圖。獲取圖片信息的流程圖如圖1所示,下載的流程圖如圖2所示。
4 結(jié)語(yǔ)
本文的爬蟲(chóng)通過(guò)調(diào)用Flickr API和Python豐富的第三庫(kù)實(shí)現(xiàn)了對(duì)Flickr網(wǎng)站上的圖片和圖片信息進(jìn)行批量爬取的程序,為一些追求高質(zhì)量的,準(zhǔn)確的,想要獲取圖片相關(guān)信息數(shù)據(jù)的研究者提供了一種方案。通過(guò)充分利用Python語(yǔ)言的特點(diǎn)結(jié)合Flickr API,能夠方便快捷地獲取大量的圖片和圖片相關(guān)信息,并將獲取到的圖片自動(dòng)存儲(chǔ)到本地,為后續(xù)的機(jī)器學(xué)習(xí)、人工智能奠定了數(shù)據(jù)基礎(chǔ)。
【參考文獻(xiàn)】
【1】夏火松,李保國(guó). 基于Python的動(dòng)態(tài)網(wǎng)頁(yè)評(píng)價(jià)爬蟲(chóng)算法[J].軟件工程,2016,19(02):43-46.
【2】賈棋然. 基于Python專用型網(wǎng)絡(luò)爬蟲(chóng)的設(shè)計(jì)及實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2017,13(12): 47-49.
【3】劉洪志. 利用Python批量獲取互聯(lián)網(wǎng)中的桌面壁紙[J].電腦編程技巧與維護(hù), 2014 (21) :56-58+74.
【4】齊亞莉,張磊. 基于Python的圖像搜索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].北京印刷學(xué)院學(xué)報(bào), 2010,18(02):48-51.
【5】云洋. 基于Python的圖片爬蟲(chóng)程序設(shè)計(jì)[J].電子技術(shù)與軟件工程, 2018(17):241-242+244.
【6】熊暢. 基于Python爬蟲(chóng)技術(shù)的網(wǎng)頁(yè)數(shù)據(jù)抓取與分析研究[J].數(shù)字技術(shù)與應(yīng)用,2017(09):35-36.