[2024最新可用] Debian11 命令行 安装 selenium chromium 并且正确的隐藏指纹

本文含有: 通过 apt install chromium xvfb python3 python3-pip 实现在服务器命令行上运行selenium爬虫

环境: Debian11 + Chromium 120.0.6099.224

花了2个小时在网上试了十几个教程没一个能用, 就很难绷。

后面自己花了时间总算试出来了。

  • chromium
  • xvfb
    • 用来欺骗 Selenium 或者 Puppeteer,让它以为自己运行在一个有图形界面的系统里面
apt install -y chromium xvfb python3 python3-pip 

pip3 install selenium
  • 试一下
    • 如果你没有报错, 就说明一切顺利, 没有问题了
xvfb-run chromium --no-sandbox --disable-gpu --enable-chrome-browser-cloud-management --remote-debugging-port=9222
  • 接下来我们新建一个 crawler.py 文件
from selenium import webdriver

# 创建 Options 对象
options = webdriver.ChromeOptions()

#options.add_argument('--headless')  # 无头模式,不打开图形界面

options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--enable-chrome-browser-cloud-management')

# 启动浏览器
driver = webdriver.Chrome(options=options)

driver.get('https://bot.sannysoft.com/')
driver.save_screenshot('screenshot.png')

运行

xvfb-run python3 crawler.py

没错, 就是这么简单, 网上一堆教程说要去下 chromedriver 给我整不会了, 远古教程, 就算是win10上现在也不用下这玩意

  • 隐藏指纹

https://github.com/requireCool/stealth.min.js/blob/main/stealth.min.js

from selenium import webdriver
import time

# 创建 Options 对象
options = webdriver.ChromeOptions()

#options.add_argument('--headless')  # 无头模式,不打开图形界面

options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--enable-chrome-browser-cloud-management')
options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")
options.add_argument("--disable-blink-features=AutomationControlled")

# 启动浏览器
browser = webdriver.Chrome(options=options)


with open('stealth.min.js') as f:
    js = f.read()

browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": js
})

time.sleep(2)

browser.get('https://bot.sannysoft.com/')

browser.set_window_size(1600, browser.execute_script("return document.body.scrollHeight"))

# 等待一段时间确保页面稳定加载
time.sleep(2)

# 截取当前页面的截图
browser.save_screenshot('screenshot_page.png')
Licensed under CC BY-NC-SA 4.0
本博客已稳定运行
发表了53篇文章 · 总计28.17k字
使用 Hugo 构建
主题 StackJimmy 设计