Selenium 反反爬检测方案(利用js隐藏浏览器特征)
| 本文僅供學習交流使用,如侵立刪!demo下載見文末 |
之前我們提到目前網上的反檢測方法幾乎都是掩耳盜鈴,因為模擬瀏覽器有幾十個特征可以被檢測,僅僅隱藏 webdriver 這一個值是沒有任何意義的。
解決這個問題的關鍵,就是一個 js 文件,叫做stealth.min.js
stealth.min.js文件生成
這個stealth.min.js文件是怎么來的呢?這就要說到puppeteer了。我們知道,Python 版本的pyppeteer已經很久沒有人維護了,但是Node.js 版本的 puppeteer持續有人維護,并且在持續更新,生態也越來越好。
有開發者給 puppeteer 寫了一套插件,叫做puppeteer-extra。其中,就有一個插件叫做puppeteer-extra-plugin-stealth[1]。這個東西,就來專門用來讓 puppeteer 隱藏模擬瀏覽器的指紋特征。
這個東西是專門給 puppeteer 用的。所以,如果你使用的是 puppeteer,那么你可以根據它的 Readme說明,直接使用。
那么,我們用 Python 的人怎么辦呢?實際上也有辦法。就是把其中的隱藏特征的腳本提取出來,做成一個單獨的 js 文件。然后讓 Selenium 或者 Pyppeteer 在打開任意網頁之前,先運行一下這個 js 文件里面的內容。
puppeteer-extra-plugin-stealth的作者還寫了另外一個工具,叫做extract-stealth-evasions[2]。這個東西就是用來生成stealth.min.js文件的。
總結
以上是生活随笔為你收集整理的Selenium 反反爬检测方案(利用js隐藏浏览器特征)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numba 让python速度提升百倍
- 下一篇: Python scrapy 动态传入自定