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

相关推荐
cuber膜拜31 分钟前
jupyter使用 Token 认证登录
ide·python·jupyter
张登杰踩1 小时前
pytorch2.5实例教程
pytorch·python
codists2 小时前
《CPython Internals》阅读笔记:p353-p355
python
Change is good2 小时前
selenium定位元素的方法
python·xpath定位
Change is good2 小时前
selenium clear()方法清除文本框内容
python·selenium·测试工具
大懒猫软件7 小时前
如何运用python爬虫获取大型资讯类网站文章,并同时导出pdf或word格式文本?
python·深度学习·自然语言处理·网络爬虫
XianxinMao8 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
查理零世9 小时前
【算法】经典博弈论问题——巴什博弈 python
开发语言·python·算法
汤姆和佩琦10 小时前
2025-1-21-sklearn学习(43) 使用 scikit-learn 介绍机器学习 楼上阑干横斗柄,寒露人远鸡相应。
人工智能·python·学习·机器学习·scikit-learn·sklearn
HyperAI超神经10 小时前
【TVM教程】为 ARM CPU 自动调优卷积网络
arm开发·人工智能·python·深度学习·机器学习·tvm·编译器