Selenium自动化:获取并复用CSDN Cookies实现免密登录
本文详解如何利用Selenium获取CSDN网站的Cookies并保存至本地文件,随后在后续脚本中读取该Cookies实现免密自动登录。通过Python代码演示了从手动登录获取Cookie到程序化复用Cookie刷新页面的完整流程,适用于博客评论、点赞等自动化操作场景。
Selenium获取CSDN Cookies并保存
首先,需要通过Selenium驱动浏览器访问CSDN登录页面,完成人工或模拟登录操作后,提取当前会话的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自动登录
接着,利用之前保存的本地Cookies文件,在脚本初始化浏览器时加载这些Cookie数据,从而模拟已登录状态访问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具有时效性,建议定期重新获取并更新本地存储的Cookie数据。成功登录CSDN后,即可在此基础上执行其他自动化任务,例如对他人博客进行评论、点赞等互动操作。
至此,关于使用Selenium携带Cookies模拟登录CSDN的完整流程已介绍完毕。如需了解更多相关技术细节,建议查阅本站过往文章或持续关注后续更新,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













