首先是获取cookies保存到本地

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time  : 2020/12/20 11:00
# @author : huni
# @file  : cookies获取.py
# @software: pycharm
from selenium import webdriver
from time import sleep
import json
if __name__ == '__main__':
  driver = webdriver.chrome(executable_path='./chromedriver.exe')
  driver.maximize_window()
  driver.get('https://passport.csdn.net/login?code=public')
  sleep(2)
  driver.find_element_by_xpath('/html/body/div[2]/div/div/div[1]/div[2]/div[5]/ul/li[1]/a').click()
  sleep(6)
  dictcookies = driver.get_cookies() # 获取list的cookies
  jsoncookies = json.dumps(dictcookies) # 转换成字符串保存
  with open('csdn_cookies.txt', 'w') as f:
    f.write(jsoncookies)
  print('cookies保存成功!')

然后是利用本地的cookies模拟登陆csdn首页

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time  : 2020/12/20 11:10
# @author : huni
# @file  : 使用cookies登录csdn.py
# @software: pycharm
from selenium import webdriver
import json
def browser_initial():
  browser = webdriver.chrome(executable_path='./chromedriver.exe')
  browser.maximize_window()
  browser.get(
    'https://www.csdn.net/')
  return browser

def log_csdn(browser):
  with open('csdn_cookies.txt', 'r', encoding='utf8') as f:
    listcookies = json.loads(f.read())

  # 往browser里添加cookies
  for cookie in listcookies:
    cookie_dict = {
      'domain': '.csdn.net',
      'name': cookie.get('name'),
      'value': cookie.get('value'),
      "expires": '',
      'path': '/',
      'httponly': false,
      'hostonly': false,
      'secure': false
    }
    browser.add_cookie(cookie_dict)
  browser.refresh() # 刷新网页,cookies才成功

if __name__ == "__main__":
  browser = browser_initial()
  log_csdn(browser)

cookies是有时间限制的,定期获取即可,登陆之后可以进行其他自动化操作,比如给别人的博客评论,点赞等等。

到此这篇关于selenium携带cookies模拟登陆csdn的实现的文章就介绍到这了,更多相关selenium cookies模拟登陆内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!