摘要:拿寫爬蟲,聽起來貌似有些不靠譜爬蟲,大多人對于爬蟲的理解都停留在使用后端語言如寫的爬蟲。圖中顯示的那一個長條是原本不存在與原網站中的,而是通過油猴腳本自動載入腳本來創建的。最大作用是將網站類似于花瓣網中的圖片作品快速的抓取下來。
拿JavaScript寫爬蟲,聽起來貌似有些不靠譜?
爬蟲,大多人對于爬蟲的理解都停留在使用后端語言如Python寫的爬蟲。但是實際上,使用客戶端JavaScript有諸多后端爬蟲所無法擁有的優勢:
可以方便的分享給其他人用,只要對方電腦里有瀏覽器
由于跑在客戶端,幾乎可以無視對方網站的反爬蟲機制
可以擁有完善的UI,無開發基礎的小白也可以隨意使用
這東西應該怎么啟動?而“客戶端JavaScript爬蟲如何運行”問題,回答這個問題非常簡單,大致有3種運行JavaScript的代碼:
存瀏覽器書簽,以javascript:打頭,點擊即可運行
復制到瀏覽器console中按回車
有個瀏覽器擴展叫做“油猴子”
這里我們主要看下第三種,油猴腳本方式運行。
或許你聽說過油猴擴展,他在Firefox叫做Greasemonkey在Chrome叫做Tampermonkey,你可以輕松的在瀏覽器的擴展商店找到它。而關于其本身有何作用,一句話
按照規則,在不同的URL額外運行一段JavaScript代碼
請參考下面的例子:
// ==UserScript== // @name Pxer // @include http://www.pixiv.net* // ==/UserScript== javascript:void((function() { document.documentElement.appendChild( document.createElement("script") ).src="http://pxer-app.pea3nut.org/jsonp.js?"+(+new Date); })());
==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來的更猛烈些~~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82335.html
摘要:這美團點評前端無痕埋點實踐前端掘金構建一個數據平臺,大體上包括數據采集數據上報數據存儲數據計算以及數據可視化展示等幾個重要的環節。 我認真起來連面試官都怕(塊級作用域,事件代理) - 掘金作者 混元霹靂手-Ziksang 如果你學完這篇文章之后,你回答完面試官之后,拿一張圖告訴面試官 在于前端面試,你給面試官講一些官方名詞,我知道react,vue,angular等等,一系列牛B的框架...
摘要:你應該知道的種設計模式前端掘金每位開發者都努力寫出可維護的易讀的可復用的代碼。繼承關系本前端書籍整理,高清前端掘金發現了一個下載前端書籍的地方,分享給大家。 你應該知道的 4 種 JavaScript 設計模式 - 前端 - 掘金每位開發者都努力寫出可維護的、易讀的、可復用的代碼。隨著應用變得越來越大,代碼的結構也越來越重要。設計模式驗證了解決這個挑戰的重點——在特定環境中,對同類事物...
摘要:可以通過的提供的直接控制模擬大部分用戶操作來進行或者作為爬蟲訪問頁面來收集數據。 ??骨架屏是在頁面數據尚未加載完成前先給用戶展示出頁面的大致結構,直到請求數據返回后再顯示真正的頁面內容;隨著單頁應用( SPA )的越來越流行,單頁應用的用戶體驗也越來越得到前端開發者的關注;為了優化用戶體驗,在數據到達用戶之前,往往會在頁面上加上 loading 的效果,而現在,越來越多的場景傾向于使...
摘要:實現彩虹畫筆繪畫板指南作者簡介是推出的一個天挑戰。這部分不涉及內容,全部由來實現。實現彩虹畫筆繪畫板效果圖項目源碼分析源碼獲取節點支持不支持彩虹效控制筆觸大小控制繪制路徑源碼分析寬高設置屬性筆觸的形狀,有圓平方三種。 Day08 - HTML5 Canvas 實現彩虹畫筆繪畫板指南 作者:?liyuechun 簡介:JavaScript30 是 Wes Bos 推出的一個 30 天挑...
閱讀 2364·2021-11-11 16:54
閱讀 2612·2021-09-26 09:47
閱讀 3987·2021-09-08 09:36
閱讀 2735·2021-07-25 21:37
閱讀 931·2019-08-30 15:54
閱讀 2543·2019-08-30 14:22
閱讀 3253·2019-08-30 13:57
閱讀 2580·2019-08-29 17:17