如何在远程Linux服务器运行含Selenium的Python脚本?
当然可以在远程Linux服务器上运行Selenium Python脚本!
我帮你梳理下具体步骤和关键注意点,确保你的Facebook自动化脚本能稳定7×24小时运行,不用一直开着本地电脑。
一、先搞定服务器上的依赖安装
首先得把运行脚本需要的组件都装好,以Debian/Ubuntu系列服务器为例:
- 安装Python和包管理工具:
sudo apt update && sudo apt install python3 python3-pip -y - 安装Selenium库:
pip3 install selenium - 安装浏览器和驱动:
服务器没有图形界面,我们用无头Chrome就行:
为了避免手动匹配ChromeDriver版本的麻烦,推荐安装sudo apt install chromium-browser -ywebdriver-manager,它会自动下载对应版本的驱动:pip3 install webdriver-manager
二、配置无头浏览器(核心!)
远程服务器没有桌面环境,必须让Selenium以无头模式运行浏览器,否则脚本会报错。给你个实用的代码模板,直接套你的Facebook逻辑就行:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager import random import time # 配置Chrome无头模式参数 chrome_options = Options() chrome_options.add_argument("--headless=new") # 新版无头模式,行为更接近真实浏览器 chrome_options.add_argument("--no-sandbox") # 绕过Linux沙箱限制,服务器环境必备 chrome_options.add_argument("--disable-dev-shm-usage") # 解决服务器临时内存不足问题 chrome_options.add_argument("--window-size=1920,1080") # 设置窗口尺寸,避免元素定位失败 chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36") # 模拟真实用户代理 # 初始化驱动 driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) # 你的Facebook操作逻辑 try: driver.get("https://www.facebook.com") # 这里写登录、工作操作的代码... # 记得加随机延迟,模拟真实用户行为,避免被封 time.sleep(random.uniform(2, 5)) finally: driver.quit() # 确保操作完成后关闭浏览器
三、让脚本7×24小时持续运行
搞定代码后,得保证关闭SSH连接后脚本还能继续跑,这里给你三种常用方案:
1. 最简单的:用nohup后台运行
直接在终端执行:
nohup python3 your_script.py &
nohup会让脚本忽略挂起信号,关闭SSH也不会停止- 脚本的输出会默认写到当前目录的
nohup.out文件里,方便排查问题
2. 可交互的:用screen/tmux会话
如果你需要偶尔查看脚本运行状态,甚至中途调整,推荐用screen:
- 先安装screen:
sudo apt install screen -y - 创建一个新会话:
screen -S fb_bot(fb_bot是会话名,随便取) - 在会话里运行脚本:
python3 your_script.py - 按
Ctrl+A+D即可 detach(脱离)会话,此时关闭SSH,脚本仍在后台运行 - 下次登录服务器,用
screen -r fb_bot就能重新连接到这个会话,查看运行状态
3. 最稳定的:用systemd服务(推荐长期运行)
如果希望脚本开机自动启动,崩溃后自动重启,用systemd是最佳选择:
- 创建一个服务文件,比如
/etc/systemd/system/fb-bot.service:[Unit] Description=Facebook Automation Bot After=network.target # 网络就绪后再启动 [Service] User=your_username # 替换成你的服务器用户名 WorkingDirectory=/path/to/your/script/folder # 脚本所在目录 ExecStart=/usr/bin/python3 /path/to/your/script/your_script.py # 脚本绝对路径 Restart=always # 崩溃后自动重启 RestartSec=10 # 重启间隔10秒 [Install] WantedBy=multi-user.target - 重新加载systemd配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable --now fb-bot.service - 查看服务状态:
sudo systemctl status fb-bot.service
四、避坑提醒(针对Facebook自动化)
Facebook的反爬机制很严格,稍不注意就会被封号,一定要注意:
- 模拟真实用户行为:添加随机延迟(比如
time.sleep(random.uniform(2,5))),不要快速连续操作 - 避免固定操作模式:比如每次点击间隔不要完全一样,偶尔加个随机滚动页面的动作
- 不要用新号测试:尽量用活跃度高的老账号,降低被检测风险
- 定期更换IP:如果服务器IP固定且频繁操作,容易被标记,必要时可以用代理(但要注意代理质量)
内容的提问来源于stack exchange,提问作者gimmieanswersplox
相关产品推荐
相关产品推荐

