用純客戶端JavaScript來寫一個有趣的爬蟲

用純客戶端JavaScript來寫一個有趣的爬蟲

拿JavaScript寫爬蟲,聽起來貌似有些不靠譜?

爬蟲,大多人對於爬蟲的理解都停留在使用後端語言如Python寫的爬蟲。但是實際上,使用客戶端JavaScript有諸多後端爬蟲所無法擁有的優勢:

可以方便的分享給其他人用,只要對方電腦裡有瀏覽器

由於跑在客戶端,幾乎可以無視對方網站的反爬蟲機制

可以擁有完善的UI,無開發基礎的小白也可以隨意使用

這東西應該怎麼啟動?

而“客戶端JavaScript爬蟲如何執行”問題,回答這個問題非常簡單,大致有3種執行JavaScript的程式碼:

存瀏覽器書籤,以javascript:

==UserScript==是油猴指令碼的規則,上面的規則告訴油猴:

當瀏覽器開啟http://www.pixiv.net*的頁面時,執行下面的指令碼

而指令碼的內容則是:通過jsonp的方式向頁面引入一個js檔案。

這就可以做很多事了。(不是壞事哦~)

優勢,還是非常多的

上圖是一個二次元插畫交流站pixiv.net。圖中顯示“Pxer 7”的那一個長條是原本不存在與原網站中的,而是通過油猴指令碼自動載入JavaScript指令碼來建立的。

若想訪問圖中的原始連結可以點選這裡,可能你需要先在pixiv.net註冊一個賬號

通過油猴指令碼自動載入,你可以做到:

完全不影響原網站使用的情況下,利用強大的JavaScript向使用者提供額外的功能

再結合一開始提到的優點:

可以給任何人使用!哪怕是無開發基礎的小白

不會被封殺!由真實使用者操作,封賬號、IP、驗證碼等反爬蟲策略你覺得會對客戶端爬蟲有效嗎?

利用HTML CSS,構建一個漂亮的UI完美融入原網站,簡直不能再簡單~

突然莫名的感覺很無敵有木有?

說了這麼多,來個實際實現的例子

空說無憑,來看一個實際的客戶端JavaScript爬蟲開源專案 —— Pxer

Github:https://github.com/pea3nut/Pxer

專案官網:http://pxer.pea3nut.org/

Pxer是一個純客戶端JavaScript編寫的爬蟲,無需任何配置即可直接在瀏覽器端執行。

Pxer最大作用是將pixiv.net網站(類似於花瓣網)中的圖片作品快速的抓取下來。它不是簡單的檢索img標籤,而是通過一定的演算法和Ajax請求來完成更為複雜的功能。

關於專案的詳細描述,可以參考專案官網Github專案主頁

良好的jsDOC格式註釋和詳細的文件都已經為你準備好了~~

https://github.com/pea3nut/Pxer

讓JavaScript來的更猛烈些~~