如何在Python的Selenium中使用fakebrowser驱动并控制会话
问题描述
我用Python结合Selenium开发了网站多账号管理自动化脚本,即便采用代理、User-Agent、Driver Options等多种反检测手段,仍会被网站识别为同一设备操作。
发现fakebrowser模块可绕过多数自动化检测,能构建Chromium驱动,但该工具基于JavaScript实现,我仅掌握JS基础,不愿重写已有Python代码。
尝试过的失败方案
方案1:直接使用fakebrowser生成的Chromium文件启动驱动
代码如下:
driver = webdriver.Chrome(executable_path=r"C:\Users\Hidden\.cache\puppeteer\chrome\win64-1069273\chrome-win\chrome.exe") driver.get('https://pixelscan.com/')
问题:此方式会泄露大量系统及浏览器指纹信息,因为fakebrowser对浏览器的修改仅通过其模块启动时生效。
方案2:JS启动fakebrowser后用Selenium Python连接会话
先运行JavaScript代码启动fakebrowser:
const {FakeBrowser} = require('fakebrowser'); function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } !(async () => { const createBrowserAndGoto = async (userDataDir, url) => { const builder = new FakeBrowser.Builder() .vanillaLaunchOptions({ headless: false, args: ['--remote-debugging-port=9223'] }) .userDataDir(userDataDir); const fakeBrowser = await builder.launch(); const page = await fakeBrowser.vanillaBrowser.newPage(); await page.goto(url); await sleep(1000000000); await fakeBrowser.shutdown(); }; createBrowserAndGoto('./fakeBrowserUserData1', 'http://pixelscan.net/').then(e => e); })();
再运行Python代码尝试连接:
from selenium import webdriver from selenium.webdriver.chromium.options import ChromiumOptions class Driver: def __init__(self): self.options = ChromiumOptions() self.options.add_experimental_option("debuggerAddress", "127.0.0.1:9223") def launch(self): driver = webdriver.Chrome(r"C:\Users\User\.cache\puppeteer\chrome\win64-1069273\chrome-win\chrome.exe", chrome_options=self.options) driver.get('http://pixelscan.net/') Driver().launch()
问题:Python代码未连接到已启动的fakebrowser会话,而是新建了未应用指纹修改的浏览器,仍会泄露系统信息。
需求
寻求可行方案,希望能在Python中控制已启动的fakebrowser驱动会话,或实现类似JS版本的指纹修改效果。
内容的提问来源于stack exchange,提问作者Speci
相关产品推荐
相关产品推荐

