You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Perl的Selenium::Remote::Driver中设置自定义User-Agent

解决Selenium::Remote::Driver设置桌面Firefox User-Agent及反爬问题

一、正确手动设置桌面Firefox User-Agent

你之前尝试用LWP::UserAgent传递UA的方式是错误的——Selenium::Remote::Driver的ua参数是用于Selenium自身API请求的UA,而非浏览器的UA。正确的方式是通过Firefox配置文件(Profile)修改浏览器的UA:

use Selenium::Remote::Driver;
use Selenium::Firefox::Profile;

# 创建Firefox配置实例
my $profile = Selenium::Firefox::Profile->new;
# 设置与VNC中一致的桌面Firefox UA
$profile->set_preference('general.useragent.override', 'Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0');

# 初始化Driver并传入配置文件
my $driver = Selenium::Remote::Driver->new(
    browser_name => 'firefox',
    firefox_profile => $profile
);

这种方式直接修改浏览器的UA参数,和你手动在Firefox设置里修改UA的效果完全一致,能避免Selenium默认UA的特征。

二、扩展Selenium::UserAgent添加桌面设备

如果想复用Selenium::UserAgent的逻辑,可以直接扩展它的设备哈希表:

use Selenium::UserAgent;

# 定义桌面Firefox的设备配置
my $desktop_firefox = {
    browserName => 'firefox',
    platform => 'LINUX',
    version => '105',
    userAgent => 'Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0',
    screenResolution => '1920x1080' # 匹配VNC中的窗口分辨率
};

# 实例化UserAgent并添加自定义设备
my $ua = Selenium::UserAgent->new;
$ua->devices->{desktop_firefox} = $desktop_firefox;

# 使用自定义设备创建Driver
my $driver = $ua->driver(device => 'desktop_firefox');

Selenium::UserAgent的devices属性是可修改的哈希,添加自定义设备后就能用它的driver方法直接生成符合要求的浏览器实例。

三、反爬额外规避配置

既然VNC打开Firefox无反爬,Selenium触发,说明除了UA,反爬还可能检测自动化特征,需补充以下配置:

# 在之前的Profile配置中添加:
# 隐藏Selenium自动化标识
$profile->set_preference('dom.webdriver.enabled', 0);
$profile->set_preference('useAutomationExtension', 0);
# 匹配VNC中的窗口大小
$profile->set_preference('browser.startup.windowWidth', 1920);
$profile->set_preference('browser.startup.windowHeight', 1080);

# 如果使用无头模式,需在extra_capabilities中补充参数:
extra_capabilities => {
    'moz:firefoxOptions' => {
        args => ['--window-size=1920,1080']
    }
}

这些配置能让Selenium模拟的Firefox更接近手动操作的环境,进一步绕过反爬检测。

内容的提问来源于stack exchange,提问作者tester3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:40:37