使用Selenium和ChromeDriver模拟用户操作:从表单填写到数据提交

第一幕:危机四伏的投票战场

场景:深夜的科技公司办公室,工程师小王盯着屏幕上闪烁的代码,产品经理莉莉焦急地踱步。

莉莉 (扶额):

"小王,无人机市场调研的投票数据必须今晚拿到!问卷星的防刷票系统像铜墙铁壁,我们试了十几个IP都被封了!"
小王 (敲键盘):

"莉莉,他们用了动态IP追踪+浏览器指纹检测,普通脚本就像裸奔的士兵。不过...我有个计划。"

技术反派登场(拟人化旁白):

  • 风控守卫(IP追踪者):"哼,同一个IP连续投票?封禁!"
  • 指纹哨兵(User-Agent检测员):"默认的ChromeDriver头?机器人实锤!拉黑!"

第二幕:打造"隐身特工"装备

小王 (神秘一笑):

"我们需要三件套:隐身斗篷(代理IP) 、伪装面具(UserAgent)和记忆胶囊(Cookie)。"

代码实现(Python + Selenium)

python 复制代码
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import random

# ==================== 亿牛云爬虫代理配置 ====================
PROXY_HOST = "PROXY.16yun.cn"  # 代理服务器域名
PROXY_PORT = "9020"          # 端口(需替换实际值)
PROXY_USER = "16YUN"         # 用户名(需替换)
PROXY_PASS = "16IP"         # 密码(需替换)

# ==================== 浏览器配置 ====================
def init_browser():
    chrome_options = Options()
    
    # 1. 隐身斗篷:代理IP配置
    proxy_auth = f"{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
    chrome_options.add_argument(f"--proxy-server=http://{proxy_auth}")
    
    # 2. 伪装面具:随机UserAgent
    user_agents = [
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1..."
    ]
    chrome_options.add_argument(f"user-agent={random.choice(user_agents)}")
    
    # 3. 禁用自动化特征检测
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    
    return webdriver.Chrome(options=chrome_options)

# ==================== 投票操作 ====================
def cast_vote():
    driver = init_browser()
    try:
        # 加载目标页面(问卷星投票链接)
        driver.get("https://www.wjx.cn/vm/XXXXXXXX.aspx")  # 需替换实际链接
        
        # 4. 记忆胶囊:植入Cookie(需提前捕获有效Cookie)
        driver.add_cookie({
            "name": "wjx_user",
            "value": "加密用户标识",  # 需替换有效值
            "domain": ".wjx.cn"
        })
        
        # 模拟人工操作
        driver.find_element_by_xpath("//label[contains(text(),'市场规模增长')]").click()
        driver.find_element_by_id("submit_button").click()
        
        print("✅ 投票成功!伪装级别:SSS")
    except Exception as e:
        print(f"❌ 行动失败:{str(e)}")
    finally:
        driver.quit()

if __name__ == "__main__":
    cast_vote()

第三幕:技术隐喻------攻防即戏剧

风控守卫(气急败坏): "为什么检测不到IP?为什么指纹像真人?"

小王(画外音): "你的规则是机械的,而我的傀儡师会呼吸。"

技术攻防对照表:

攻方策略 守方检测机制 技术实现
代理IP轮换 IP频率限制 亿牛云动态代理池
随机浏览器指纹 UserAgent黑名单 海量UA库+自动化特征清除
人工行为模拟 鼠标轨迹分析 操作延迟+随机点击偏移

终章:人性化代码的艺术

莉莉(查看数据面板): "这些投票数据...简直和真人一模一样!"

小王(合上电脑): "记住,技术是双刃剑------我们只是在和算法玩一场规则游戏。"

相关推荐
用户9562562542910 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程10 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程10 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801110 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读10 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*11 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
卷无止境13 小时前
mathmodel-figure-templates 以及两个上手案例
后端·python
锋行天下14 小时前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国
人工智能·后端·python
一条大祥脚14 小时前
深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道
人工智能·pytorch·python·注意力机制·flex attention·可编程注意力
2601_9679801115 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整