1. 程式人生 > >通過記錄 cookie繞過驗證碼

通過記錄 cookie繞過驗證碼

通過向瀏覽器中新增 cookie 可以繞過登入的驗證碼,這是比較有意思的一種解決方案。我們可以在使用者登入之前,通過 add_cookie()方法將使用者名稱密碼寫入瀏覽器 cookie ,再次訪問系統登入連結將自動登入。例如下面的方式:

.... #訪問 xxxx 網站
driver.get("http://www.xxxx.cn/")
#將使用者名稱密碼寫入瀏覽器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次訪問 xxxx 網站,將會自動登入
driver.get("http://www.xxxx.cn/")
time.sleep(3)
.... driver.quit()
.... #訪問 xxxx 網站
driver.get("http://www.xxxx.cn/")
#將使用者名稱密碼寫入瀏覽器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次訪問 xxxx 網站,將會自動登入
driver.get("http://www.xxxx.cn/")
time.sleep(3)
.... driver.quit()
.... #訪問 xxxx 網站
driver.get("http://www.xxxx.cn/")
#將使用者名稱密碼寫入瀏覽器 cookie
driver.add_cookie({'name':'Login_UserNumber', 'value':'username'})
driver.add_cookie({'name':'Login_Passwd', 'value':'password'})
#再次訪問 xxxx 網站,將會自動登入
driver.get("http://www.xxxx.cn/")
time.sleep(3)
.... driver.quit()
使用 cookie 進行登入最大的難點是如何獲得使用者名稱密碼的 name ,如果找到不到 name 的名字,就沒辦法向 value 中輸使用者名稱、密碼資訊。筆者的建議是可以通過 get_cookies()方法來獲取登入的所有的 cookie 資訊,從而進行找到使用者名稱、密碼的 name 物件的名字;當然,最簡單的方法還是詢問前端開發人員。