用selenium写一份免cookies的登录函数
时间: 2024-04-21 15:28:31 浏览: 88
Selenium2.0中文帮助文档
好的,以下是使用Selenium实现免cookies登录的代码示例:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def login(username, password):
# 配置Chrome选项
options = webdriver.ChromeOptions()
options.add_argument('--disable-extensions')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--headless')
# 初始化浏览器
driver = webdriver.Chrome(options=options)
# 打开登录页面
driver.get('https://example.com/login')
# 等待页面加载完成
wait = WebDriverWait(driver, 10)
username_input = wait.until(EC.presence_of_element_located((By.ID, 'username')))
# 输入用户名和密码
username_input.send_keys(username)
password_input = driver.find_element_by_id('password')
password_input.send_keys(password)
# 提交表单
submit_button = driver.find_element_by_xpath('//button[@type="submit"]')
submit_button.click()
# 等待登录完成
wait.until(EC.url_changes(driver.current_url))
# 返回登录后的页面源代码
return driver.page_source
```
在这个示例中,我们使用了Chrome浏览器和ChromeDriver,并通过ChromeOptions配置禁用了扩展、GPU和沙盒,并设置了无界面模式。我们打开了登录页面,并使用WebDriverWait等待页面加载完成,然后输入用户名和密码,并提交表单。最后,我们等待登录完成并返回登录后的页面源代码。
请注意,由于我们没有使用cookies,所以每次调用login函数时,都会打开一个新的浏览器实例,这可能会导致性能和资源问题。如果您需要在多个页面之间进行导航或执行其他操作,请考虑使用cookies或其他技术来提高效率和可靠性。
阅读全文