iT邦幫忙

0

Heroku 後台爬蟲 無法寫入 Django 資料庫

  • 分享至 

  • xImage

最近學習架設 Django 網站
寫了一隻爬蟲程式來獲取資料並存入Django的資料庫
原本是把爬蟲寫在 views.py 中
在網頁裡面放一個"獲取資料的按鈕" 就會執行爬蟲
這邊上傳到heroku後都能正常執行

現在我想把爬蟲改成在後台運行
嘗試許多方法都失敗,由於我不知道問題點在哪,下面是最後一次嘗試的方法

專案名稱為 game 裡面有 gameapp 這個應用程式
我使用 abscheduler 讓爬蟲程式定期執行,並將檔名命名為 <crawler.py>

由於我把 <crawler.py>放在 gameapp 目錄時,在本機端測試網頁都會一直要執行定期爬蟲而跑不出網站
所以我把 <crawler.py>放在專案根目錄 ,並加入以下程式碼才能正常調用 Django ORM

import django
import sys, os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "game.settings")
from django.conf import settings
django.setup()

然後在 Procfile 加入下面這行:

clock: python crawler.py

用git更新好網站後
使用heroku logs 檢查
可以看到有確實運行爬蟲程式
連接資料庫後成功儲存
會顯示("成功儲存一筆資料")
在heroku logs 也有看到此訊息

但是資料庫卻沒有真的更新
登入admin看資料庫也沒有任何變化

實在搞不懂為何會這樣子,請教各位大神

froce iT邦大師 1 級 ‧ 2018-05-30 07:07:58 檢舉
https://stackoverflow.com/questions/8047204/django-script-to-access-model-objects-without-using-manage-py-shell
froce iT邦大師 1 級 ‧ 2018-05-30 07:09:49 檢舉
把專案先拉下來本機端執行看看是什麼錯誤?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答