背景:
在《用户画像系列——在一些中小型公司数据不全的情况下做画像怎么做呢?》一文中,讲解在一些中小型公司如何数据不全的情况下,如何利用现用数据结合一些外部数据来完善画像标签。
里面提供了爬取手机价格的代码,那么有没有什么办法能做到爬取手机价格自动化呢?
调研:
(1)部署一台机器,定时运行爬虫任务进行爬虫----要求有一台机器
(2)利用其他公司实现自动化爬取,比如:利用gitee 流水线、githup action,gitee 流水线目前只有200分钟免费,因此考虑使用github action 来处理
实现:
GitHub Action 介绍:大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。https://docs.github.com/zh/actions
首先实现好爬虫代码,保证本地测试可运行,提交到githup 上,新建action
构建自己的workflows:
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
schedule:
# 定时执行,Runs at 17:00 UTC every day
- cron: '0 16 * * *'
# 手动触发事件
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Test scenario tags'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Run Java Application
run: java -cp target/zhihu-collector-1.0-SNAPSHOT-jar-with-dependencies.jar org.example.SpiderMain
- name: Commit
run: |
git config --local user.email xiaoqiu2017wy@163.com
git config --local user.name zhugezifang
git add -A
git commit -m "update"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.MY_GIT_TOKEN }}
branch: master
设置 Secrets 和仓库权限read and write(保证仓库可以push)
这样就完成了配置,我们就可以利用githup action 来做到自动化爬取手机价格数据了
结束语:
本文分享了利用GitHub Action 来实现自动爬取手机价格数据,达到使画像数据更加完善的效果,避免利用服务器等资源,从效果来看是非常方便,文中代码参考:https://github.com/zhugezifang/zol-collectorzol-collector
GitHub Action参考:
https://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
https://www.cnblogs.com/niumoo/p/14472691.html
历史用户画像系列文章:
用户画像系列——在一些中小型公司数据不全的情况下做画像怎么做呢?
用户画像系列——数据中台之OneID (ID-Mapping)核心架构设计
作者简介:诸葛子房,曾供职于京东、BAT,在大数据领域有多年实践经验,欢迎交流