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

终章:人性化代码的艺术

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

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

相关推荐
猿小蔡-Cool5 分钟前
Java中将异步调用转为同步的五种方法
java·数据库·python
奔跑吧邓邓子5 分钟前
【Python爬虫(80)】当Python爬虫邂逅边缘计算:探索数据采集新境界
开发语言·爬虫·python·边缘计算
偷懒的加菲11 分钟前
Python代码片段-Excel导入到MongoDB
python·mongodb·excel
肥胖喵1 小时前
【Python修仙编程】(二) Python3灵源初探(2)
开发语言·python
猿 白1 小时前
Dify工具的安装和使用
人工智能·笔记·python·mysql
逐星ing1 小时前
【AIGC】使用Python实现科大讯飞语音服务ASR转录功能:完整指南
python·aigc·xcode
数据知道2 小时前
一文掌握python中正则表达式的各种使用
爬虫·python·正则表达式
AAIshangyanxiu2 小时前
基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局
python·算法·arcgis pro·invest模型·生态安全格局·usle
游客5205 小时前
设计模式-结构型-代理模式
python·设计模式