爬蟲是一個比較容易上手的技術,也許花5分鐘看一篇文檔就能爬取單個網頁上的數據。但對于大規(guī)模爬蟲,完全就是另一回事,并不是1*n這么簡單,還會衍生出許多別的問題。
系統的大規(guī)模爬蟲流程如圖所示。
先檢查是否有API
API是網站官方提供的數據接口,如果通過調用API采集數據,則相當于在網站允許的范圍內采集,這樣既不會有道德法律風險,也沒有網站故意設置的障礙;不過調用API接口的訪問則處于網站的控制中,網站可以用來收費,可以用來限制訪問上限等。整體來看,如果數據采集的需求并不是很獨特,那么有API則應優(yōu)先采用調用API的方式。
數據結構分析和數據存儲
爬蟲需求要十分清晰,具體表現為需要哪些字段,這些字段可以是網頁上現有的,也可以是根據網頁上現有的字段進一步計算的,這些字段如何構建表,多張表如何連接等。值得一提的是,確定字段環(huán)節(jié),不要只看少量的網頁,因為單個網頁可以缺少別的同類網頁的字段,這既有可能是由于網站的問題,也可能是用戶行為的差異,只有多觀察一些網頁才能綜合抽象出具有普適性的關鍵字段——這并不是幾分鐘看幾個網頁就可以決定的簡單事情,如果遇上了那種臃腫、混亂的網站,可能坑非常多。
對于大規(guī)模爬蟲,除了本身要采集的數據外,其他重要的中間數據(比如頁面Id或者url)也建議存儲下來,這樣可以不必每次重新爬取