1. 程式人生 > >python 爬蟲:利用selenium抓取cookie進行模擬登陸

python 爬蟲:利用selenium抓取cookie進行模擬登陸

  • 說明:
    • selenium抓取cookie模擬登陸,理論上可以登入任何網站。以下兩段程式碼分別介紹抓取cookie,和攜帶cookie登入。
  • 抓取cookie.json程式碼
  • import json
    from selenium import webdriver
    import time
    
    url = 'https://www.taobao.com/'
    driver = webdriver.Chrome()
    
    driver.get(url)
    # 卡主瀏覽器 回車繼續執行
    input('請手動登入')
    
    # 獲取cookie並通過json模組將dict轉換成str
    dictCookies = driver.get_cookies()   #  核心
    jsonCookies = json.dumps(dictCookies)
    print(jsonCookies)
    # 登入完成後將cookie儲存到本地檔案
    with open('taobao.json','w') as f:
        f.write(jsonCookies)
    time.sleep(3)
    driver.close()
  • 攜帶cookie進行模擬登陸
    • 攜帶cookie登入後需要重新整理頁面才會顯示登入,以下程式碼已經使用程式碼進行頁面重新整理
    • import json
      from selenium import webdriver
      import time
      
      url = 'https://www.taobao.com/'
      driver = webdriver.Chrome()
      
      driver.get(url)
      # 卡主瀏覽器 回車繼續執行
      input('回車自動登入')
      
      driver.get(url)
      # 刪除第一次建立連線時的cookie
      driver.delete_all_cookies()
      
      # 讀取本地的cookie檔案
      with open('taobao.json','r',encoding='utf8') as f:
          listCookies = json.loads(f.read())
      
      for cookie in listCookies:
          driver.add_cookie({
              "domain":".taobao.com",
              "expiry":1557891103,
              "httpOnly":cookie['httpOnly'],
              "name":cookie['name'],
              "path":"/",
              "secure":cookie['secure'],
              "value":cookie['value']
          })
      # 讀取完cookie重新整理頁面
      driver.refresh()
      input('按回車鍵退出')
      driver.close()