最近需要通過網路爬蟲來收集點資料,想找一些簡單易用的開源版本,總是要麼配置起來有點複雜,要麼功能上不太容易擴充套件。還是自己實現乙個簡單的版本更容易擴充套件相應的功能。這個版本的實現完全參照wiki上面對於webcrawler的架構來設計型別。
實現了一些簡單的功能
執行目標輸出路徑和工作執行緒數
暫定和恢復爬行
跟蹤爬行請求以及出錯請求
由於只是用來收集比較少的資料,很多高階的功能沒有實現,
沒有持久化佇列,程式關閉不能斷點續爬
判斷迴圈鏈結演算法需要優化,目前只用了乙個自定義的url樹來跟蹤鏈結
由於沒有用圖來跟蹤鏈結,鏈結於鏈結的之間的入度關係資訊丟掉了,無法應用pagerank等依賴於鏈結關係的演算法
爬蟲執行起來的樣子,
輸出目錄
如果有人需要爬網頁或者進行一些資料分析,可以直接更改這個方法sharkcrawler.scheduler.defaultscheduler.threadproc()進行相應的擴充套件。
private void threadproc()
}if (!string.isnullorempty(uri))}}
}}else
}else
}tracersink.instance.trace(threadid, string.empty, "stopped");
}
乙個簡單網路爬蟲示例
在學生時期,可能聽到網路爬蟲這個詞會覺得很高大上,但是它的簡單實現可能學生都不難懂。網路爬蟲應用,就是把整個網際網路真的就當做一張網,像蜘蛛網那樣,應用就像乙個蟲子,在網上面按照一定的規則爬動。現在網際網路應用最廣的就是http s 協議了,本文例子就是基於使用http s 協議的,只作為示例,不涉...
python製作乙個簡單網路爬蟲
這章我們用python標準庫urllib2來實現簡單的網路爬蟲 本章很簡單適合小白,不喜勿噴 一 urllib2定義了以下方法 urllib2.urlopen url,data,timeout data引數 post資料提交 例如 賬號密碼傳送給伺服器判斷登陸 url引數 網頁url,可接受requ...
乙個最簡單的網路爬蟲的實現
當然,其中還牽扯到各種策略,什麼廣度優先,深度優先,但我們這裡是最簡單的網路爬蟲,所以不討論。好,那麼我們從最簡單的原理入手。首先,我們要建立乙個儲存 的資料結構。public class queue 入佇列 public void enqueue object elem 出佇列 public ob...