iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
Modern Web

寫給PHP開發者的30堂網路爬蟲開發系列 第 28

Day 28:案例整合 1-1 排程工作整合

  • 分享至 

  • xImage
  •  

前言

在本日,我要展示的是該如何使用排程工作與爬蟲案例1-1專案做結合,所以今日會著重在以下幾點:

  • 排程工作的設定與相關做法
  • 案例整合1-1的相關方式

排程工作整合

首先,我們要將排程設定方法以Linux作業系統為例,排程工作通常都是要先設定指定日期,再來是對應的工作,通常都是一個指令,命令。

案例整合做法

首先,先把我們要的Docker爬蟲環境跑起來

docker run --name=php_crawler -d -it php_crawler bash

接著把lab1-1.php程式複製到Docker爬蟲環境。用以下指令:

docker cp lab1-1.php  php_crawler:/root/

接著,設定排程設定檔,這時候是要打開在host上面的排程設定檔,利用下面的設定檔打開:

sudo crontab -e

打開之後,會看到如下的設定檔:

https://ithelp.ithome.com.tw/upload/images/20191013/20103975cBDeCmq0jJ.png

接著,在最下面加上一行排程工作,那一行如下:

0 * * * * docker exec php_crawler php lab1-1.php

上述代表的是說,在每個小時去執行lab1-1.php程式,意思就是去擷取指定的學校最新的消息。

接著,這樣排程工作就達成了。

進階整合

因為一天的章節無法把案例整合完整的使用,這邊用描述方式表示,案例整合可以更深入如下:

  • 每日一小時擷取學校的最新消息出來
  • 將擷取下來的最新消息寫入資料庫
  • 若資料已經在資料表裡則不寫進去資料表
  • 若最新消息資料不在資料表裡面則將其寫進資料表裡面

結論

本案例整合是透過排程將lab1-1.php做結合,讓其有個固定時間會抓取學校最新消息資料,再更進一步工作,是可以更新到指定的資料表。

參考文獻

  • crontab.guru, 幫助讀者容易去設定排程的日期表示法

上一篇
Day 27:案例研究整合之用到服務介紹
下一篇
Day 29:案例整合 2-1 發信API寄送整合
系列文
寫給PHP開發者的30堂網路爬蟲開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言