selenum操作cookie进行免登陆【爬虫必修课1】

使用 Selenium 自动化登录网站是一个常见的需求。但是直接输入用户名和密码登录非常不安全,同时每次登录都需要重复这个操作也很麻烦。一个更好的方式是使用 Cookie 进行免登录。

这篇博客就来介绍如何使用 Selenium 实现 Instagram 的免登录功能。

首先我们需要手动登录 Instagram 一次,获取登录成功后的 Cookie 信息。(也可以使用selenum自动的登陆,但是需要手动进行人机验证)代码如下:

python 复制代码
# 首先登陆获取cookie
option = webdriver.EdgeOptions()
option.add_experimental_option("detach", True)
# 实例化浏览器驱动对象,并将配置浏览器选项
driver = webdriver.Edge(options=option)
# 获取cookie
driver.get(f'https://www.instagram.com')
driver.implicitly_wait(10)
# 找到用户名输入框元素
username_input = driver.find_element(By.CSS_SELECTOR, "._aa4b._add6._ac4d._ap35")
# 输入用户名
username_input.send_keys("150******m")
# 找到密码输入框元素
password_input = driver.find_element(By.CSS_SELECTOR, "._aa4b._add6._ac4d._ap35[type='password']")
# 输入密码
password_input.send_keys("hz******9?")
time.sleep(2)
# 找到登录按钮元素
login_button = driver.find_element(By.CSS_SELECTOR, "._acan._acap._acas._aj1-._ap30")
# 等待登录按钮可用并点击
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable(login_button))
login_button.click()
time.sleep(5)
time.sleep(10)
time.sleep(50)
coo = driver.get_cookies()
print(coo)
driver.quit()

这段代码首先打开 Instagram 页面,然后输入用户名和密码,点击登录按钮。登录成功后,获取当前页面的 Cookie 信息并打印出来。然后进行复制。

获取到 Cookie 信息后,我们就可以直接使用这些 Cookie 信息进行免登录了。代码如下:

python 复制代码
# 复制cookie然后使用cookie免登陆
option = webdriver.EdgeOptions()
option.add_experimental_option("detach", True)
# 实例化浏览器驱动对象,并将配置浏览器选项
driver = webdriver.Edge(options=option)
driver.get('https://www.instagram.com')
driver.implicitly_wait(10)
driver.delete_all_cookies()
cookies ="刚才复制的cookies"
for cookie in cookies:
    if 'expiry' in cookie:
        del cookie['expiry']
    driver.add_cookie(cookie)
driver.refresh()
time.sleep(50)

这段代码首先打开 Instagram 页面,然后删除所有 Cookie,再逐一添加之前保存的 Cookie 信息。最后刷新页面就可以免登录进入 Instagram 了。

这样做的好处是,不需要每次都输入用户名和密码就可以登录,提高了自动化的效率和安全性。同时,即使 Cookie 过期了,我们只需要再次手动登录一次就可以更新 Cookie 信息了。

相关推荐
ONE_Gua2 小时前
chromium魔改——CDP(Chrome DevTools Protocol)检测01
前端·后端·爬虫
用户27784491049932 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
JavaEdge在掘金4 小时前
ssl.SSLCertVerificationError报错解决方案
python
我不会编程5555 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
ONE_Gua5 小时前
chromium魔改——navigator.webdriver 检测
前端·后端·爬虫
老歌老听老掉牙5 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀10155 小时前
Python入门(7):模块
python
无名之逆5 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得2055 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
啊喜拔牙5 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala