欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

selenium携带cookies模拟登陆CSDN的实现

程序员文章站 2022-03-23 18:45:13
首先是获取cookies保存到本地#!/usr/bin/env python# -*- coding: utf-8 -*-# @time : 2020/12/20 11:00# @author :...

首先是获取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模拟登陆内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!