Python中如何实现批量登录网站并进行自动化操作?
需要从哪块下手学习呢
Python中如何实现批量登录网站并进行自动化操作?
2 回复
用requests和selenium配合就能搞定。简单场景用requests发POST请求就行,复杂操作(如需要执行JS)得上selenium。下面给个通用框架,你按自己需求改。
import requests
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
import time
# 如果需要处理cookies或session
session = requests.Session()
# 批量登录信息
accounts = [
{'username': 'user1', 'password': 'pass1'},
{'username': 'user2', 'password': 'pass2'}
]
for acc in accounts:
# 方法1:使用requests(适合简单表单提交)
login_url = 'https://example.com/login'
payload = {
'username': acc['username'],
'password': acc['password']
}
response = session.post(login_url, data=payload)
if response.status_code == 200:
print(f"{acc['username']}登录成功")
# 这里可以继续用session进行后续请求
else:
print(f"{acc['username']}登录失败")
# 方法2:使用selenium(适合需要浏览器交互的网站)
driver = webdriver.Chrome() # 确保已安装对应浏览器驱动
for acc in accounts:
driver.get('https://example.com/login')
# 等待页面加载并填写表单
wait = WebDriverWait(driver, 10)
username_field = wait.until(EC.presence_of_element_located((By.NAME, 'username')))
password_field = driver.find_element(By.NAME, 'password')
username_field.send_keys(acc['username'])
password_field.send_keys(acc['password'])
password_field.submit()
# 检查登录是否成功,例如通过页面元素判断
time.sleep(2) # 等待页面跳转
if "dashboard" in driver.current_url:
print(f"{acc['username']}登录成功")
# 这里可以添加后续自动化操作,比如点击按钮、填写表单等
# driver.find_element(By.LINK_TEXT, '某个按钮').click()
else:
print(f"{acc['username']}登录失败")
driver.quit()
关键点:
- 先手动分析目标网站的登录请求(用浏览器开发者工具看Network标签),确定是GET/POST、参数名、有无验证码或动态token。
- 简单接口用
requests更快更轻量;需要模拟点击、滚动等操作时用selenium。 - 注意网站可能有反爬机制,适当加
time.sleep()或使用WebDriverWait。 - 考虑使用
cookies持久化避免重复登录。
根据你的具体网站调整选择器和等待条件。
爬虫采集、自动化测试 /操作的范畴
具体解决方案:Python + Selenium + Xvfb + Firefox/Chrome
具体可参考米扑博客: https://blog.mimvp.com/article/12219.html

