孫海濤
(中移全通系統集成有限公司,河北 石家莊 050000)
網頁抓取中爬蟲控制器的研究分析
孫海濤
(中移全通系統集成有限公司,河北 石家莊 050000)
隨著互聯網的日益壯大,網頁抓取技術飛速發展。網頁抓取已成為人們在浩瀚的網絡世界中獲取信息必不可少的工具,如何有效進行網頁抓取成為專業搜索引擎中網絡爬蟲研究的主要問題。文章介紹了爬蟲控制器和工作原理,并討論了爬蟲控制器的URL隊列管理、頁面抓取線程、索引隊列管理等的抓取策略,并對其未來發展趨勢進行了展望。
爬蟲控制器;隊列管理;線程;索引
爬蟲控制器是把網頁抓取和網頁分析用多線程的方式執行,并管理多線程之間的數據共享和通信;加上索引相關模塊,爬蟲控制器大致可以分為4個部分:(1)統一資源定位符(Uniform Resource Locator,URL)隊列管理;(2)頁面抓取線程;(3)索引隊列管理;(4)索引線程。
其中兩個隊列管理需要處理資源共享問題,線程部分需要處理線程間通信問題。
因URL隊列須保證URL的唯一性,以保證每個鏈接指向的頁面只抓取一次;而抓取頁面的工作是由多個線程同時進行,所以URL隊列需要保證線程操作安全。所以該隊列還必須包含唯一性判斷和線程安全。URL隊列管理如圖1所示。
在向隊列中追加URL時,把數據寫到URL尾部,而讀取URL時,從隊列頭部開始以保證先進先出隊列(First Input First Output,FIFO)規則,追加數據完成后需要通過所有的頁面抓取線程,使沒有工作的線程可以啟動抓取數據。若URL的值為空時,讀取線程進入等待狀態。……