程式擁有「執行速度」與「記憶儲存」這兩種特性,我們可以利用程式自動化的重複、大量執行指定的操作。網頁爬蟲即是用程式自動化實現收集來自於網頁中資料的一種場景,但若這個「自動化」太暴力時則可能會造成對方的網站受到影響,稱為「惡意機器人( Bat Bot )」。網頁爬蟲自動化收集的行為太暴力的情況下,可能會造成對方的網站受到影響,常見的惡意行為有以下幾種:
你在瀏覽網頁的時候,有看過這些驗證機制嗎?網頁驗證碼的專業術語稱為「CAPTCHA 」(全名是 Completely Automated Public Turing test to tell Computers and Humans Apart 自動判別電腦與人類的公開圖靈測試),是目前在網頁當中常見的一種驗證機制,用來判斷惡意的使用者干擾與攻擊。驗證碼機制是許多網站傳送資料的檢查機制,對於非人類操作與大量頻繁操作都有不錯的防範機制。
最後一種是「JavaScript 渲染的動態網頁」,動態網頁是指網頁在瀏覽器取得 HTML 後,才透過 JavaScript 根據需求動態地取得資料更新 HTML 的一種技術。動態網頁與靜態網頁最大的不同是「網頁上的資料」是在什麼時間點取得產生的。因此,動態爬蟲程式必須針對這種動態更新資料的網頁調整,才有辦法取得真正的資料。
過去的資料來源多半來自於公司內部的資料庫或資料倉儲系統,仰賴於工程師跟 IT 部門的支援。但隨著 Big Data 的技術到位,實務上對於資料的要求更加大量也更加多元。現在對於資料的使用者其實很廣泛,通常很多資料的需求也都是實現性的。這種情況下可能沒有那麼多的工程師或開發人力能夠隨時提供彈性的資料,因此打造資料收集力已經成為所有資料工作者的必備技能了。