用脚本实现自动填写登录信息

wen 实用脚本 1

本文目录导读:

用脚本实现自动填写登录信息

  1. 浏览器扩展方式(最推荐)
  2. Selenium 自动化脚本(Python)
  3. Puppeteer (Node.js)
  4. 常见表单选择器集合
  5. 安全建议
  6. 使用示例

浏览器扩展方式(最推荐)

Tampermonkey/Greasemonkey 用户脚本

// ==UserScript==
// @name         自动登录填写
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  自动填写登录表单
// @author       You
// @match        https://example.com/login
// @grant        none
// ==/UserScript==
(function() {
    'use strict';
    // 等待页面加载
    window.addEventListener('load', function() {
        // 填写用户名
        const usernameField = document.querySelector('input[name="username"], input[name="email"], input[id*="username"], input[id*="email"]');
        if (usernameField) {
            usernameField.value = 'your_username';
            // 触发输入事件
            usernameField.dispatchEvent(new Event('input', { bubbles: true }));
        }
        // 填写密码
        const passwordField = document.querySelector('input[type="password"]');
        if (passwordField) {
            passwordField.value = 'your_password';
            passwordField.dispatchEvent(new Event('input', { bubbles: true }));
        }
        // 自动提交
        setTimeout(() => {
            const submitBtn = document.querySelector('button[type="submit"], input[type="submit"], button:contains("登录")');
            if (submitBtn) submitBtn.click();
        }, 500);
    });
})();

Selenium 自动化脚本(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
from selenium.common.exceptions import TimeoutException
import time
# 配置浏览器驱动
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
try:
    # 打开登录页面
    driver.get("https://example.com/login")
    # 等待并填写用户名
    username = wait.until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "input[name='username'], input[name='email']"))
    )
    username.clear()
    username.send_keys("your_username")
    # 填写密码
    password = driver.find_element(By.CSS_SELECTOR, "input[type='password']")
    password.clear()
    password.send_keys("your_password")
    # 点击登录按钮
    submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit'], input[type='submit']")
    submit_btn.click()
    # 等待登录完成
    time.sleep(3)
finally:
    # 关闭浏览器
    driver.quit()

Puppeteer (Node.js)

const puppeteer = require('puppeteer');
(async () => {
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();
    await page.goto('https://example.com/login');
    // 填写表单
    await page.type('input[name="username"]', 'your_username', { delay: 100 });
    await page.type('input[type="password"]', 'your_password', { delay: 100 });
    // 点击登录
    await page.click('button[type="submit"]');
    // 等待页面跳转
    await page.waitForNavigation();
    await browser.close();
})();

常见表单选择器集合

// 通用选择器集合
const selectors = {
    // 用户名/邮箱字段
    username: [
        'input[name="username"]',
        'input[name="email"]',
        'input[name="user"]',
        'input[id*="username"]',
        'input[id*="email"]',
        'input[type="email"]',
        'input[placeholder*="用户"]',
        'input[placeholder*="邮箱"]'
    ],
    // 密码字段
    password: [
        'input[type="password"]',
        'input[name="password"]',
        'input[id*="password"]',
        'input[placeholder*="密码"]'
    ],
    // 提交按钮
    submit: [
        'button[type="submit"]',
        'input[type="submit"]',
        'button:contains("登录")',
        'button:contains("登陆")',
        'button:contains("登入")',
        'a:contains("登录")'
    ]
};

安全建议

安全注意事项:
  1. 避免明文存储密码:
     - 使用环境变量
     - 加密存储
     - 使用密码管理器API
  2. 验证码处理:
     - OCR识别 (Tesseract)
     - 打码平台API
     - 手动干预
  3. 反检测措施:
     - 随机延迟
     - 模拟人类行为
     - User-Agent轮换
  4. 2FA认证:
     - TOTP (Google Authenticator)
     - 短信验证码自动读取

使用示例

# 安装依赖
pip install selenium webdriver-manager
npm install puppeteer
# 运行Python脚本
python auto_login.py
# 运行Node.js脚本
node auto_login.js

选择哪种方法取决于你的具体需求:

  • 浏览器扩展:适合个人自动化特定网站
  • Selenium/Puppeteer:适合测试、数据采集等批量操作
  • 直接使用密码管理器:更安全,如LastPass、1Password等

需要我针对特定网站或场景提供更详细的脚本吗?

抱歉,评论功能暂时关闭!