由於本人對垂直搜索有着濃厚興趣,抱着與園子里高手一起更深入研究,故拋磚引玉,獻上蜘蛛們爬回來的1000張比較Hot的美女圖片給大家(聲明:大家通過本蜘蛛軟件爬出來的圖片,看看就罷了不要傳播)。搜圖片只是垂直搜索的一個具體應用,不用我詳說,大家也知道前景遠遠不是這些。本文所提供的爬蟲是受限版(僅能爬1000張熱圖),目的不在於本爬蟲和圖片,而是引無數高手一起探討垂直搜索這個領域。
【預備概念】
垂直搜索是針對某一個行業的專業搜索引擎,是搜索引擎的細分和延伸,是對網頁庫中的某類專門的信息進行一次整合,定向分字段抽取出需要的數據進行處理后再以某種形式返回給用戶。相對通用搜索引擎的信息量大、查詢不准確、深度不夠等提出來的新的搜索引擎服務模式,通過針對某一特定領域、某一特定人群或某一特定需求提供的有一定價值的信息和相關服務。其特點就是“專、精、深”,且具有行業色彩,相比較通用搜索引擎的海量信息無序化,垂直搜索引擎則顯得更加專注、具體和深入。
【先看結果】
大家可以在機器上裝上至少.NET3.5以上的環境(具體安裝不用介紹,園友們應該都知道),然后下載以下程序直接運行(僅一個EXE文件):
如果您的瀏覽器不支持上面的圖標下載的話,可通過地址https://skydrive.live.com/?cid=35d7be189926747a&id=35D7BE189926747A%211223直接下載。
第一次執行可能會有些慢,這要看你機器的網絡速度如何。當看到EXE文件下有文件夾出現,且文件夾里有圖片,則表示運行正常。一個針對HOT圖片的垂直搜索的結果就呈現了。
【再談原理】
由於筆者知識淺薄,僅簡要談一下原理,搜索是通過一個已知URL地址,然后遍歷到所有的URL地址,也就是讓蜘蛛機器人自己去尋找URL地址(當然不能讓蜘蛛出現死循環,會記錄已經爬過的路徑,避免重復),這樣下去,再加上多線程並發,URL地址會越爬越多,可以說在浩瀚互聯網里,應該沒有終點了。
以上,主要是找到了各家服務器地址,但是如何搜索具體領域的數據呢?如本文提到的圖片(美女圖)。這里就要用到圖像識別,圖像本身是一個二進制文件,蜘蛛機器人不會和我們肉眼那樣去瞅圖片里的內容是否是美女,還是丑女,它僅僅知道圖片的一些二進制信息,通過一些算法來確認圖片內容和格式。
如果上面的第一段的派蜘蛛機器人出去的華是通用搜索的話,那么第二段蜘蛛機器人搜索URL並識別合格的圖片數據則為垂直搜索了。接下來,再合理的展現給用戶,便是一套完整的流程。本程序會分析搜索到的圖片像素大小,小圖片會被過濾不保存,同名的,也會分析內容是否一樣,不一樣的話則重新命名,總之不用擔心大量的小圖片會被下載和文件重名等問題。如果可以的話再寫一些終端展現UI給用戶,就更完美了。
【最后討論】
說了那么多,由於時間原因,有些文字可能講得不那么清楚,但一點很明確,【蜘蛛爬蟲】->【數據】->【終端呈現】,最近剛拿同學的WP7市場一個Student帳號,實驗性地將以“蜘蛛爬蟲”的Demo程序上傳到了微軟Marketplace,很開心的是沒有任何BUG,測試上都通過。接下來,想寫更多的垂直搜索方面的產品,如一些具體領域的數據抓取,如珠寶市場價格、手機領域銷量、 微博熱門話題等等。最后,大家有么有什么更高深的見解在垂直搜索上面呢?我已經拋磚了,大家就不要再拋了,歡迎提出自己的看法和建議。
【與此相關】
蜘蛛爬蟲網絡高像素圖片抓取工具[ZSpider.NET]