close

我的需求及目標如下
(1)Python爬蟲程式環境及上傳程式
(2)在GCP執行Python爬蟲程式
(3)設定自動排程每日執行

 

使用爬蟲程式注意事項

1. 進行網絡抓取時請仔細閱讀數據合法使用聲明。通常情況下,您抓取的數據不能商用。
2. 您的程序不要過於頻繁的向網站發出數據請求(也被稱為垃圾請求),這種做法可能會使網站列為黑名
    單。 所以對一個網站每數秒後才進行一次數據更新是比較好的做法,我們要使程式的行為與人類的行為相
    似。
3. 網站佈局時間會變化,所以要時常重新訪問網站,如果需要的話,先檢查網站更新時間。

(1)Python爬蟲程式環境及上傳程式
      sudo pip install BeautifulSoup4
       用pip list 確定版本及套件

(2)  上傳python 程式, py 格式要用UFT-8

(3) 撰寫擷取 yahoo 頭條新聞簡單程式

import requests
from bs4 import BeautifulSoup

# 下載 Yahoo 首頁內容
r = requests.get('https://tw.yahoo.com/')

# 確認是否下載成功
if r.status_code == requests.codes.ok:
  # 以 BeautifulSoup 解析 HTML 程式碼
  soup = BeautifulSoup(r.text, 'html.parser')

  # 以 CSS 的 class 抓出各類頭條新聞
  stories = soup.find_all('a', class_='story-title')
  for s in stories:
    # 新聞標題
    print("標題:" + s.text)
    # 新聞網址
    print("網址:" + s.get('href'))

 

(4) 程式結果:

 

(5)在GCP上設定Crontab自動排程Python程式

  • 輸入crontab -l 可以查看目前有在GCP排程的程式
  • 輸入crontab -r 可以刪除所有在GCP排程的程式
  • 輸入crontab -e 可以編輯目前正在GCP上排程的P程式
代表意義 分鐘 小時 日期 月份 指令
數字範圍 0-59 0-23 1-31 1-12 0-7 指令

 

特殊字符 代表意義
*(星號) 代表任何時刻都接受的意思!舉例來說,範例一內那個日、月、週都是 * , 就代表著『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思!
,(逗號) 代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:
0 3,6 * * * command
時間參數還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用!
-(減號) 代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作:
20 8-12 * * * command
仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思!
/n(斜線) 那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:
*/5 * * * * command
很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思!
arrow
arrow
    全站熱搜

    stanley 發表在 痞客邦 留言(0) 人氣()