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

终章:人性化代码的艺术

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

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

相关推荐
Y1nhl24 分钟前
力扣_二叉树的BFS_python版本
python·算法·leetcode·职场和发展·宽度优先
Q_Q5110082851 小时前
python的婚纱影楼管理系统
开发语言·spring boot·python·django·flask·node.js·php
若兰幽竹1 小时前
【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
数据库·python
xiaocainiao8812 小时前
Python 实战:构建 Git 自动化助手
git·python·自动化
nightunderblackcat2 小时前
新手向:使用Python将多种图像格式统一转换为JPG
开发语言·python
engchina2 小时前
Python PDF处理库深度对比:PyMuPDF、pypdfium2、pdfplumber、pdfminer的关系与区别
开发语言·python·pdf
Lo-Y-eH2 小时前
Openpyxl:Python操作Excel的利器
python·excel
DAWN_T172 小时前
Transforms
pytorch·python·机器学习·jupyter·pycharm
一百天成为python专家3 小时前
python库之jieba 库
开发语言·人工智能·python·深度学习·机器学习·pycharm·python3.11