首页 > 其他分享 >如何使用GitHub Actions发布自己的爬虫代码

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

时间:2022-10-25 23:57:02浏览次数:94  
标签:GitHub -- 代码 爬虫 Actions Python

一.从上一篇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

标签:GitHub,--,代码,爬虫,Actions,Python
From: https://www.cnblogs.com/tjp40922/p/16826843.html

相关文章

  • 如何从github通过本地git工具下载代码
    1.本地安装git软件Git-2.35.1.2-64-bit.exe 官网地址 https://git-scm.com/2.配置本地git信息设置用户名和邮箱(与github中保持一致)gitconfig--globaluser.email"......
  • github 突然报 Connection closed?
    今天gitpull突然报错连不上了。Connectionresetby20.205.243.166port22fatal:Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorr......
  • GitHub Pages站点官方宣布开始使用HTTPS
    数百万人依靠GitHubPages,将其作为他们的网站主机,除此之外,还有数百万人每天访问这些网站。为了更好地保护到GitHubPages站点的通讯,也为了鼓励在因特网上更广泛地采用HT......
  • 搭建github个人博客——记录
    目的看到网上许多人的都在搭建自己在gayhub上面的花里胡哨的blog,兴致来了,摸鱼不如自己搭一个这个!过程在跟着一个教程,是通过git+node+(里面的hexo)。baby级教程到了其......
  • 如何测试爬虫ip的可用性
    网络爬虫的应用极大的方便了人们,尤其是多线程多任务工作时,能够极大的提高信息采集工作效率。在使用爬虫IP时,经常会遇到代理时效的问题,那么我们该怎么检测代理是否正常?静态......
  • 如何让爬虫通过本身工作原理持续工作
    我们知道,网络爬虫是指使用代码模拟真实用户发送网络请求,并获取数据的一个程序或者脚本。但如果不使用爬虫HTTP代理,很快就会被目标网站限制访问,那么,爬虫代理的工作原理......
  • selenium爬虫问题汇总
    基本框架fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.action_chainsimportActionChains#打开dri......
  • Python为什么叫爬虫?
    因为python的脚本特性和易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以叫爬虫。1、网络爬虫是指一种按照一定的规则,自动地抓取万维网信息的程序或者脚......
  • python爬虫可以做什么呢?
    1、收集数据Python爬虫程序可用于收集数据,这是最直接和最常用的方法。由于爬虫程序是一个程序,程序运行得非常快,不会因为重复的事情而感到疲倦,因此使用爬虫程序获取大量数据......
  • python爬虫需要什么基础?
    学习Python基础知识并实现基本的爬虫过程一般获取数据的过程都是按照发送请求-获得页面反馈-解析并且存储数据这三个流程来实现的。这个过程其实就是模拟了一个人工浏览网......