我的需求及目標如下
(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 ,相同意思! |
留言列表