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 信息了。

相关推荐
郭庆汝4 小时前
pytorch、torchvision与python版本对应关系
人工智能·pytorch·python
思则变7 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络8 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find9 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
泡泡以安10 小时前
安卓高版本HTTPS抓包:终极解决方案
爬虫·https·安卓逆向·安卓抓包
博观而约取10 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector12 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
q5673152312 小时前
Java Selenium反爬虫技术方案
java·爬虫·selenium
Zonda要好好学习12 小时前
Python入门Day2
开发语言·python
Vertira12 小时前
pdf 合并 python实现(已解决)
前端·python·pdf