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

如何在部署于Heroku的Selenium机器人中新增及更新Excel工作表

Heroku部署Selenium项目Excel定期更新解决方案

Heroku的dyno文件系统是临时存储,每次dyno重启、重新部署后,本地写入的文件都会被重置,直接把Excel放在代码包里每次更新都要重新部署效率很低,以下是3种可落地的方案:

方案1:使用Heroku Config Vars存储链接(最省事,适合链接数量不多的场景)

你可以把Excel里的所有链接拼成逗号分隔的字符串,直接存到Heroku后台的配置变量里,后续更新链接只需要在Heroku后台修改配置变量即可,修改后Heroku会自动重启dyno,无需重新部署代码。
代码修改示例:

from selenium import webdriver
import os
import pandas as pd

# 从配置变量读取链接列表
url_list = os.environ.get('TARGET_URLS', 'https://youtube.com').split(',')

op = webdriver.ChromeOptions()
op.binary_location = os.environ.get('GOOGLE_CHROME_BIN')
op.add_argument("--headless")
op.add_argument("--no-sandbox")
op.add_argument("--disable-dev-sh-usage")

driver = webdriver.Chrome(executable_path = os.environ.get('CHROMEDRIVER_PATH'), options=op)
for url in url_list:
    driver.get(url)
    print(driver.page_source)

操作步骤:

  • 打开你的Heroku应用后台,进入 Settings → Config Vars
  • 新增键为TARGET_URLS,值为你所有链接用逗号拼接的字符串,更新时直接修改这个值即可

方案2:拉取远程存储的Excel文件(适合Excel内容复杂、更新频繁的场景)

你可以把Excel文件上传到私有云存储,代码里每次运行任务前先拉取最新的Excel文件到本地临时目录,解析后使用。后续更新只需要覆盖云存储里的Excel文件即可,不需要修改Heroku上的任何配置和代码。
代码示例片段:

import pandas as pd
import requests

# 拉取最新Excel到临时目录
excel_resp = requests.get("你的Excel文件访问地址")
with open("/tmp/target_urls.xlsx", "wb") as f:
    f.write(excel_resp.content)

# 解析Excel
df = pd.read_excel("/tmp/target_urls.xlsx")
url_list = df['url列名'].tolist()

方案3:CI/CD自动部署(适合希望把Excel存在代码仓库的场景)

配置代码仓库的CI/CD流程,只要你把更新后的Excel推送到仓库的指定分支,CI/CD会自动把最新代码(含更新后的Excel)部署到Heroku,不需要你手动执行部署操作。

原有代码优化提示

你给出的测试代码里有两个可以调整的点:

  • chrome_options参数已经被弃用,建议改成options避免警告
  • 不要用input获取输入,Heroku后台运行的无头服务没有交互式输入的环境,要从环境变量或者外部文件读取参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:04