网站建设需求列表,装修设计软件知乎,司法公开网站建设情况汇报,什么公司适合做seo优化文章目录 前言1 方案一#xff1a;使用Chrome用户数据目录2 方案二#xff1a;手动获取并保存Cookies#xff0c;后续使用保存的Cookies3 注意事项 前言 在进行使用Selenium进行爬虫、网页自动化操作时#xff0c;登录往往是一个必须解决的问题#xff0c;但是Selenium每次… 文章目录 前言1 方案一使用Chrome用户数据目录2 方案二手动获取并保存Cookies后续使用保存的Cookies3 注意事项 前言 在进行使用Selenium进行爬虫、网页自动化操作时登录往往是一个必须解决的问题但是Selenium每次打开的浏览器默认是不携带用户数据的所以每次都需要手动登录。本文将详细介绍如何使用Selenium配合Cookies实现网页的自动登录功能以链家网站为例进行讲解。 实现思路 使用本地保存的Chrome用户数据目录先手动登录一次获取并保存Cookies后续使用保存的Cookies
1 方案一使用Chrome用户数据目录 思想这种方案的核心是直接使用本地Chrome浏览器的用户数据包括已保存的登录状态和Cookie信息。 代码实现代码执行之前先保证手动正常打开网站时网站是登陆了的不然使用的用户数据也是没有登陆的没有用
from selenium import webdriver
from selenium.webdriver.chrome.service import Servicedriver_path E:\\ProgramFiles\\_CodeTools\\ChromeDriver\\chromedriver.exe
service Service(driver_path)options webdriver.ChromeOptions()
# 设置用户数据目录
options.add_argument(--user-data-dirC:/Users/L/AppData/Local/Google/Chrome/User Data)
# 禁用自动化提示
options.add_experimental_option(useAutomationExtension, False)
options.add_experimental_option(excludeSwitches, [enable-automation])browser webdriver.Chrome(serviceservice, optionsoptions)
browser.get(https://bj.lianjia.com/ershoufang/)# 后续操作
# ...核心代码
options.add_argument(--user-data-dirC:/Users/L/AppData/Local/Google/Chrome/User Data)该代码的作用是设置Chrome浏览器的用户数据目录C:/Users/L/AppData/Local/Google/Chrome/User Data使得Selenium可以直接使用本地Chrome浏览器的用户数据包括已保存的登录状态和Cookie信息。不过应注意用户数据目录随操作系统、用户名等不同而不同需要根据实际情况进行调整。 不同操作系统的数据目录如下 Windows: C:/Users/用户名/AppData/Local/Google/Chrome/User DatamacOS: ~/Library/Application Support/Google/Chrome/Profile 1Linux: ~/.config/google-chrome/Default 优点 实现简单不需要手动处理Cookie代码量少可以直接使用本地浏览器的所有配置 缺点 依赖本地Chrome浏览器配置可能存在跨设备兼容性问题需要指定正确的用户数据目录路径
2 方案二手动获取并保存Cookies后续使用保存的Cookies 思想这种方案的核心是先通过手动登录获取网站的Cookies信息将其保存到本地文件后续使用时直接读取并应用这些Cookies来实现自动登录。 代码实现第一步获取Cookies
import json
from selenium import webdriver
from selenium.webdriver.chrome.service import Servicedriver_path E:\\ProgramFiles\\_CodeTools\\ChromeDriver\\chromedriver.exe
service Service(driver_path)options webdriver.ChromeOptions()
options.add_experimental_option(useAutomationExtension, False)
options.add_experimental_option(excludeSwitches, [enable-automation])browser webdriver.Chrome(serviceservice, optionsoptions)
browser.get(https://bj.lianjia.com/ershoufang/)# 等待手动登录
input(请登录后按回车继续...)# 获取cookie并保存
cookies browser.get_cookies()
with open(cookies.json, w) as f:json.dump(cookies, f, indent4)# 关闭浏览器
browser.quit()这一步在浏览器打开后网页是没有登录的需要我们手动按照网页要求进行登录登录完成后命令行回车程序获取Cookies后保存到本地文件结束程序。
代码实现第二步使用Cookies实现免登录
import json
from selenium import webdriver
from selenium.webdriver.chrome.service import Servicedriver_path E:\\ProgramFiles\\_CodeTools\\ChromeDriver\\chromedriver.exe
service Service(driver_path)options webdriver.ChromeOptions()
options.add_experimental_option(useAutomationExtension, False)
options.add_experimental_option(excludeSwitches, [enable-automation])browser webdriver.Chrome(serviceservice, optionsoptions)
browser.get(https://bj.lianjia.com/ershoufang/)# 读取并添加cookie
with open(cookies.json, r) as f:cookies json.load(f)
for cookie in cookies:browser.add_cookie(cookie)# 刷新页面完成登录
browser.refresh()# 后续操作
# ...这一步代码是读取保存的Cookies并将其添加到浏览器中完成自动登录。
核心代码
# 步骤一获取并保存Cookies
cookies browser.get_cookies()
with open(cookies.json, w) as f:json.dump(cookies, f, indent4)# 步骤二读取并使用Cookies
with open(cookies.json, r) as f:cookies json.load(f)
for cookie in cookies:browser.add_cookie(cookie)这段代码展示了Cookies的获取、保存和使用过程。需要注意的是Cookies通常都有有效期过期后需要重新获取。
优点 可跨设备使用便于部署Cookie可以保存和复用实现更灵活可以针对不同网站保存不同的Cookie 缺点 需要先手动登录获取CookieCookie可能会过期需要定期更新实现步骤相对较麻烦
3 注意事项
ChromeDriver版本要与Chrome浏览器版本匹配Cookie有效期有限需要定期更新不同网站的Cookie获取方式可能不同注意Cookie的安全存储避免泄露建议添加异常处理机制