1. 起因, 目的:
- 建议都添加 token, 防止权限不够,报错 403
- 这事情原因很简单,但是操作很麻烦, 因为需要手动点击,找到各种按钮的位置。
- 这种事情,第一次比较麻烦,做过一遍, 有个模板,下次会很快。
2. 先看效果
报错的地方
修复之后,一切正常,能自动运行!
3. 过程:
问题背景
在使用 GitHub Actions 时,可能会遇到权限不足导致的 403 错误。这通常是因为默认的 GITHUB_TOKEN
权限限制或者 API 访问限制导致的。
解决方案
1. 创建个人访问令牌(Personal Access Token)
申请一个 token, 放在常用的地方。
2. 在仓库中添加密钥
- 进入需要配置的仓库
- 点击
Settings
→Secrets and variables
→Actions
- 点击
New repository secret
- 添加新密钥:
- Name:
PAT
(或其他易记的名称) - Value: 粘贴之前生成的个人访问令牌
- 点击
Add secret
- Name:
3. 在 Workflow 中使用令牌
我的 workflow 文件
yaml
# 工作流名称,在 GitHub Actions 界面显示
name: 爬虫自动化
# 触发条件:每5分钟运行一次,或手动触发
# - cron: '0 */5 * * *' # 每5个小时触发一次
# - cron: '*/5 * * * *' # 每5分钟触发
# - cron: '0 4 * * *' # 每天中午12点触发一次
on:
schedule:
- cron: '0 */2 * * *' # 每2个小时触发一次
workflow_dispatch: # 支持手动触发,方便测试
# 新增!允许推送代码更改
permissions:
contents: write # 允许推送代码更改
# 定义任务
jobs:
run-crawler:
# 使用最新的 Ubuntu 环境
runs-on: ubuntu-latest
# 执行步骤
steps:
# 步骤1:拉取仓库代码
- name: 拉取代码
uses: actions/checkout@v4
# 步骤2:设置 Python 环境
- name: 配置 Python
uses: actions/setup-python@v5
with:
python-version: '3.9' # 使用 Python 3.9
# 步骤3:安装依赖(如果有 requirements.txt)
- name: 安装依赖
run: |
if [ -f requirements.txt ]; then
pip3 install -r requirements.txt
fi
# 步骤4:打印当前时间,方便调试
- name: 打印运行时间
run: echo "now is >>> $(date)"
# 步骤5:运行爬虫脚本
- name: 运行爬虫
run: python3 news_spider/peng_pai_02.py
# 步骤6:提交生成的 CSV 文件到仓库
- name: 提交 CSV 文件
if: success()
env:
MY_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add csv_data/peng_pai_news_*.csv
git commit -m "添加新爬虫数据: peng_pai_news_$(date +%Y%m%d_%H%M%S).csv" || echo "没有新文件提交"
git push https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }} HEAD:${{ github.ref_name }}
4. 结论 + todo
- 小问题,就是麻烦。
希望对大家有帮助。