Python中如何实现批量登录网站并进行自动化操作?

需要从哪块下手学习呢
Python中如何实现批量登录网站并进行自动化操作?

2 回复

requestsselenium配合就能搞定。简单场景用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()

关键点:

  1. 先手动分析目标网站的登录请求(用浏览器开发者工具看Network标签),确定是GET/POST、参数名、有无验证码或动态token。
  2. 简单接口用requests更快更轻量;需要模拟点击、滚动等操作时用selenium
  3. 注意网站可能有反爬机制,适当加time.sleep()或使用WebDriverWait
  4. 考虑使用cookies持久化避免重复登录。

根据你的具体网站调整选择器和等待条件。


爬虫采集、自动化测试 /操作的范畴
具体解决方案:Python + Selenium + Xvfb + Firefox/Chrome
具体可参考米扑博客: https://blog.mimvp.com/article/12219.html

回到顶部