如何使用GitHub Actions发布自己的爬虫代码

一.从上一篇GitHubActions详解了解了GitHubActions,我们理一下使用GitHubActions详解发布爬虫需要哪几个步骤

  1. 上传爬虫代码到 GitHub 仓库
  2. 创建 GitHub Actions 工作流,并提交
  3. 触发 GitHub Actions 工作流运行爬虫
  4. 查看爬虫运行状态

1.提交代码到仓库

 

 

  如图提交了代码,代码结构如上图

2. GitHub 仓库主页中找到 「Actions」 标签,再点击它。,搜索python相关的,如Python application就够用了

 

 搜索 Python,可以找到一个运行 Python 程序的工作流。就它了。

 

       

 

 点击 Configure 按钮之后,你会进入如下编辑页面。

 

   所谓 GitHub 工作流,其实是一个 YAML 配置文件」,类似于现在很流行的 PaaS、IaaS、云原生应用之类的,都用代码来自动化配置。

   可以看到其中已经有一些默认工作流代码,我们这里只需要稍微改动一下

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python application

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

permissions:
  contents: read

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up Python 3.10
      uses: actions/setup-python@v3
      with:
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install flake8 pytest
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
    - name: Lint with flake8
      run: |
        # stop the build if there are Python syntax errors or undefined names
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
    - name: Test with pytest
      run: |
        pytest

在界面上点击提交(Commit),你应该就会看到在 .github/workflows 目录下生成了 github-trending-crawler.yml 这个工作流配置文件。

简单来说,上面的工作流做了几件事情:

  1. 检出(Checkout)该仓库的代码
  2. 设置 Python 运行环境
  3. 安装依赖
  4. 运行程序

查看运行情况

我们提交了这个工作流,它应该会「自动运行」,因为工作流中默认设置触发条件。

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

示每当我们推送提交(Push Commits)或合并请求(Pull Request)时,该工作流会自动触发执行。

现在我们看看运行情况,如果你同样来到 Actions 页面,你会看到出现了工作流的执行列表。

 

 点进最新的那个,再点击 build,你会看到相关日志,然后我们展开 Test这个步骤的日志。

 

 定时任务

运行爬虫怎么能没有「定时任务」呢?而 GitHub Actions 恰巧支持!那么我们就欣然加上吧。

打开之前创建的工作流编辑页面,将在触发条件代码区域中,加上一段代码,编辑后内容如下。

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  schedule:
    - cron:  '0 * * * *'

其中,Cron 表达式 0 * * * * 表示每小时 0 分触发一次。对 Cron 表达式不熟悉的读者,可以参考 Cron Guru[9]

编辑好提交之后,我们应该能看到这个每小时执行的定时爬虫任务。

需要详细了解 GitHub Actions 的触发条件,请参考相关官方文档[10]

 

 

总结

本篇文章介绍了如何利用 GitHub Actions 工作流,来部署一个简单的「爬虫定时任务」。用到了技术如下:

  1. GitHub 代码仓库
  2. GitHub Actions 工作流,包括定时任务触发
  3. Python 爬虫开发,包括依赖库 requests[11]、bs4[12]

 

转自:https://mp.weixin.qq.com/s/i86qGH1jsMGdw-mH2op2oA

概念理解:https://blog.csdn.net/qq_27080247/article/details/124441774

posted @ 2022-10-25 23:45  阿布_alone  阅读(447)  评论(0编辑  收藏  举报
TOP