方法一:去除window.navigator.webdriver特征
代碼如下:
from selenium.webdriver import ChromeOptions
from selenium import webdriver
# 實(shí)例化對(duì)象
option = ChromeOptions()
option.add_experimental_option(‘excludeSwitches’,[‘enable-automation’])# 開(kāi)啟實(shí)驗(yàn)性功能
# 去除特征值
option.add_argument(“–disable-blink-features=AutomationControlled”)
# 實(shí)例化谷歌
driver = webdriver.Chrome(options=option)
driver.get(“https://www.baidu.com” )
方法二:使用Undetected_chromedriver
Undetected_chromedriver
是一個(gè)經(jīng)過(guò)優(yōu)化的 Selenium WebDriver
,可以避免觸發(fā)反機(jī)器人程序。
如繞過(guò) Cloudflare 、Akamai、知乎。它適用于 Google Chrome
、Brave
和許多其他基于 Chromium 的瀏覽器。
代碼如下:
import undetected_chromedriver as uc
driver = uc.Chrome(use_subprocess=True)
driver.get(“[https://www.baidu.com”](https://www.baidu.com%26/#8221); )
還有一點(diǎn)要注意:
異?,F(xiàn)象:
如果使用pyinstaller
對(duì)undetected-chromedriver
直接進(jìn)行打包,那打包后的exe大概率無(wú)法運(yùn)行的。
解決方法:
在代碼最開(kāi)始在import
模塊之前加上以下內(nèi)容,然后再進(jìn)行打包即可:
from multiprocessing import freeze_support
freeze_support()
原因解析:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-537945.html
在調(diào)用某些模塊的時(shí)候,也是進(jìn)程,而在多進(jìn)程中,你程序中的進(jìn)程不會(huì)被阻塞,而一直循環(huán)起進(jìn)程。而undetected-chromedriver內(nèi)部正好就開(kāi)了進(jìn)程。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-537945.html
到了這里,關(guān)于selenium反爬-繞過(guò)瀏覽器指紋的常用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!