( github actions + workflow 01 ) 实现爬虫自动化,每2小时爬取一次澎湃新闻
1. 起因, 目的:
受到这个项目的启发,https://github.com/worryzyy/cursor-ver-dl,
我觉得很多事情, 是可以自动完成。
因此我打算,深入学习 github workflows, 写几个例子。比如
- 自动化爬虫,每2个小时,运行一下。
- 自动化发布内容。
项目代码
2. 先看效果
可行!
3. 过程:
- 就是探索,尝试,踩坑, 记录过程, 总结经验,还有什么呢?
代码 1, 先记录一个大坑, 一定要添加这一句,即, 手动执行!
workflow_dispatch
on:schedule:- cron: '*/5 * * * *' # 每2分钟触发workflow_dispatch: # 👈 手动触发按钮,推荐加上, 一定加上!测试方便
代码 2, 完整的工作流。
# 工作流名称,在 GitHub Actions 界面显示
name: 爬虫自动化# 触发条件:每2分钟运行一次
# 注意:免费版 GitHub Actions 可能限制最短为5分钟,调试时若失败可改成 '*/5 * * * *'
on:schedule:- cron: '*/5 * * * *' # 每2分钟触发workflow_dispatch: # 👈 手动触发按钮,推荐加上, 一定加上!测试方便# 定义任务
jobs:run-crawler:# 使用最新的 Ubuntu 环境runs-on: ubuntu-latest# 执行步骤steps:# 步骤1:拉取仓库代码- name: 拉取代码uses: actions/checkout@v4# 步骤2:设置 Python 环境- name: 配置 Pythonuses: actions/setup-python@v5with:python-version: '3.9' # Python 版本,建议用 3.9,可根据需要调整# 步骤3:安装依赖(如果有 requirements.txt)# 仅当文件存在时安装,避免重复安装- name: 安装依赖run: |if [ -f requirements.txt ]; thenpip install -r requirements.txtfi# 步骤4:打印当前时间,方便调试- name: 打印运行时间run: echo "now is >>> $(date)"# 步骤5:运行爬虫脚本- name: 运行爬虫run: python3 news_spider/peng_pai_02.py
记录几个问题, 简问简答
我记得很久之前,有一个系列是, numpy 50问,还是100问。
写的很好,简洁而且清晰。
那种行文风格,我很喜欢。
1. GitHub 中,Actions 和 workflows 是什么关系?
- 厨房, 做一道菜。
2. GitHub 每个项目,都可以设置一个 workflow ,是吗?是免费的,还是限制数量的?
- GitHub 的每个项目(即仓库)都可以设置 workflow,而且通常是免费的。
3. 必须使用这个文件名,.github/workflows, 是吗?
- 是的
4. 必须使用 .yml 或 .yaml 作为文件扩展名, 是吗?
- 是的
从此往下,可以让AI 继续写,写20个问答,但是我觉得没必要了。
4. 结论 + todo
- 打算多写几个,这只是第一个。
希望对大家有帮助。