參考文章:https://www.v2ex.com/amp/t/534322
今天在學習selenium的時候嘗試了一下登陸知乎,本來我覺着我這不就是通過瀏覽器進行登陸的,肯定沒有問題,然而,打臉來的太快了,提示了求情信息異常,好吧,我很菜,在通過百度過後解決了問題(菜雞一枚,不會就百度)
首先我們先來想一下,使用selenium操作瀏覽器與人工操作瀏覽器有什麼不同(小聲嘀咕,能有啥不同),簡單的說,就是應該怎樣能識別出是人工操作還是selenium操作,先來測試一下
在使用selenium打開瀏覽器的室友使用window.navigator.webdriver測試一下發現爲true,下面我們再正常打開瀏覽器測試一下
此時,我們發現它的值爲undefined,這下出問題了。要怎麼才能將它的值在請求的時候更改爲undefined呢
設置Chimmedriver的啓動參數即可解決問題
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = webdriver.Chrome(executable_path='chromedriver.exe', options=option)
這樣我們在請求的時候就不會出現信息異常了,而且我們也能登陸知乎了
當然,我們也能用這種方法來判斷是否是通過selenium發起的請求(假如他沒有設置啓動參數的話,手動滑稽)