使用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库+自动化特征清除
人工行为模拟 鼠标轨迹分析 操作延迟+随机点击偏移

终章:人性化代码的艺术

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

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

相关推荐
_一条咸鱼_1 小时前
Python 数据类型之可变与不可变类型详解(十)
人工智能·python·面试
_一条咸鱼_1 小时前
Python 入门之基本运算符(六)
python·深度学习·面试
_一条咸鱼_1 小时前
Python 流程控制之 for 循环(九)
人工智能·python·面试
_一条咸鱼_1 小时前
Python 语法入门之流程控制 if 判断(七)
人工智能·python·面试
_一条咸鱼_1 小时前
Python 流程控制之 while 循环(八)
人工智能·python·面试
HtwHUAT2 小时前
实验四 Java图形界面与事件处理
开发语言·前端·python
Tech Synapse2 小时前
基于Surprise和Flask构建个性化电影推荐系统:从算法到全栈实现
python·算法·flask·协同过滤算法
麦麦大数据2 小时前
vue+flask+CNN电影推荐系统
pytorch·python·cnn·flask·scikit-learn·电影推荐
腾飞开源2 小时前
02_Flask是什么?
python·flask·python web开发·flask快速入门教程·人人都能学·小白看得懂学得会·跟我学编程
終不似少年遊*2 小时前
国产之光DeepSeek架构理解与应用分析04
人工智能·python·深度学习·算法·大模型·ds