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

终章:人性化代码的艺术

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

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

相关推荐
别走!万哥爱你8 分钟前
Python 中可以用于在已排序的列表中查找特定元素的位置的是什么?
python
wxwx_bscxy3221 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
tang777891 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
TechWayfarer2 小时前
Cloudflare 9·15新政倒计时:用IP风险画像识别AI爬虫,防止误伤Googlebot
网络·人工智能·爬虫·python·tcp/ip·网络安全
禹凕2 小时前
滑动窗口算法实战指南
python·算法
论文复现现场3 小时前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
Patrick在香港3 小时前
模型路由器实测:12 个任务省 77%,旗舰过载时的降级要打出显式标记
python·llm·智能路由器·api·架构设计·成本优化
Looooking3 小时前
Python 之 jwt 令牌生成和校验
python·jwt
PS测3 小时前
Linux压力测试工具stress,能精确控制 CPU、内存、IO 负载类型和持续时间
测试工具
2601_962295994 小时前
嵌入式开发语言用哪个最好,C,python或者其他
c语言·python·嵌入式开发·开发效率·系统资源