當前位置:
首頁 > 最新 > 反擊爬蟲,前端工程師的腦洞可以有多大?

反擊爬蟲,前端工程師的腦洞可以有多大?

對於一張網頁,我們往往希望它是結構良好,內容清晰的,這樣搜索引擎才能準確地認知它。

而反過來,又有一些情景,我們不希望內容能被輕易獲取,比方說電商網站的交易額,教育網站的題目等。因為這些內容,往往是一個產品的生命線,必須做到有效地保護。這就是 爬蟲與反爬蟲 這一話題的由來。

2. 常見反爬蟲策略

但是世界上沒有一個網站,能做到完美地反爬蟲。

如果頁面希望能在用戶面前正常展示,同時又不給爬蟲機會,就必須要做到識別真人與機器人。因此工程師們做了各種嘗試,這些策略大多採用於 後端 ,也是目前比較常規單有效的手段,比如:

User-Agent + Referer檢測

賬號及Cookie驗證

驗證碼

IP限制頻次

而爬蟲是可以無限逼近於真人的,比如:

chrome headless或phantomjs來模擬瀏覽器環境

tesseract 識別驗證碼

代理IP淘寶就能買到

所以我們說,100%的反爬蟲策略?不存在的。

更多的是體力活,是個難易程度的問題。

不過作為前端工程師,我們可以增加一下遊戲難度,設計出一些 很(sang)有(xin)意(bing)思(kuang) 的反爬蟲策略。

3. 前端與反爬蟲3.1 font-face拼湊式例子: 貓眼電影

貓眼電影里,對於票房數據,展示的並不是純粹的數字。

頁面使用了font-face定義了字符集,並通過unicode去映射展示。也就是說,除去圖像識別,必須同時爬取字符集,才能識別出數字。

並且,每次刷新頁面,字符集的url都是有變化的,無疑更大難度地增加了爬取成本。

還有熱愛數學的去哪兒,對於一個4位數字的機票價格,先用四個 i 標籤渲染,再用兩個 b 標籤去絕對定位偏移量,覆蓋故意展示錯誤的 i 標籤,最後在視覺上形成正確的價格…

這說明爬蟲會解析css還不行,還得會做數學題。

iframe非同步載入式例子: 網易雲音樂

網易雲音樂頁面一打開,html源碼里幾乎只有一個 iframe ,並且它的src是空白的: about:blank 。接著js開始運行,把整個頁面的框架非同步塞到了iframe裡面…

不過這個方式帶來的難度並不大,只是在非同步與iframe處理上繞了個彎(或者有其他原因,不完全是基於反爬蟲考慮),無論你是用selenium還是phantom,都有API可以拿到iframe裡面的content信息。

花無涯

Anonymous

━━━ 求知若飢,虛心若愚━━━

中國黑客協會創始人


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 白帽子黑客 的精彩文章:

花無涯:黑客最愛的滲透測試Linux操作系統
花無涯:做白帽子黑客你需要會什麼?
花無涯:黑客是怎樣煉成的?
花無涯:黑客Hacker和駭客Cracker 本質上的區別!
花無涯:黑客有多少種方法玩壞你?

TAG:白帽子黑客 |

您可能感興趣

反擊爬蟲,工程師的腦洞可以有多大?
三峽大壩蓄水量這麼多,裡面會有魚嗎?工程師終於說出「大實話」
將水泥倒入廢棄的螞蟻洞穴,挖開後才看見,工程有點龐大
皇帝搞了一個大工程,被人罵的狗血臨頭,可千百年後,大家依然因他的工程受益
前端工程師的未來在哪裡?
二戰德國工程師腦洞有多大?空氣炮不算厲害,這3款差到讓人服氣
三峽大壩蓄水量那麼多,裡面一條魚都沒有嗎?工程師說出實話
雖然木工這塊只有吊頂工程,但看到師傅這樣做,可以放心了
三峽大壩蓄水量這麼多,裡面會有「魚」嗎?工程師說出「大實話」
前端工程師眼裡的大前端
宋朝好不容易有了崛起的跡象,卻毀在豆腐渣工程上!
把黑人的頭髮拉直有多難?工程量浩大,理髮師都快哭了!
蘋果工程師做的傢具,竟然都吊在天花板上,卻能讓蝸居秒變大宅!
前無古人後無來者的六大工程,歷史上相當有名,很多人只聽過
三峽大壩蓄水量那麼龐大,裡面還會有魚嗎?工程師告訴你真相
幾百米高的大廈,底下的承重柱是怎麼避免被壓裂的?為工程師點贊
裝修遇到這樣的豆腐渣工程,真是夠倒霉的,不知道多少人掉坑裡了
幽默段子:我手頭有幾個工程,有大有小,介紹給你做,你是接大的還是小的?
當年蘇聯的國力多麼的雄厚,從這麼一個巨大工程上就可以略見一斑
中國這項軍事戰略性工程,多少歪心思碰見它後,都紛紛退縮