2013-06-05 44 views
1

我有Django應用程序只是爲了一些日常數據的CRUD。
型號只有價格和日期。django應用程序的Web爬蟲;我應該寫在Django中或作爲單獨的腳本

我應該寫一些代碼,它會自動(每天)將新數據插入到我的模型中。

我打算使用BeautifulSoup進行網頁解析。

所以,我有幾個問題:

  1. 我刨使用crontab(手動編輯用crontab -e命令),用於設置任務每天運行一次。有更聰明的解決方案嗎?

  2. 我應該使用Django ORM還是直接在單獨的腳本中編寫SQL?

我找的建議是什麼,從長遠來看更好。我會有更多這樣的任務。

感謝

回答

5

如果你已經建立在Django支持的代碼爲您的模型,並運行你的應用程序安裝在同一臺服務器上的代碼,那麼你或許應該使用Django ORM。

看到這個頁面的幫助入門編寫得到您的Django應用程序的上下文中運行命令行管理工具:

+0

+1從cron調用的自定義./manage.py命令可能是最簡單的方法 – codeape

+0

如果我正確理解你,你的建議是定製django-admin命令(如updateDBFromWeb),然後通過crontab調用它? – WebOrCode

+0

@WebOrCode確實如此。 – dkamins

1

這個答案是更多的通用架構的答案。 ..

首先,一切都可以在Django中完成。

我會成立芹菜和週期性任務:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

對於實際的爬行,你可能需要在鏈路層發現扇出...您可以使用芹菜也太只使用@task裝飾。

使用django:/// broker啓動項目。一旦你達到規模,繼續前進到RabbitMQ。

+0

謝謝你的回答,我學到了一些新東西。對於我目前的需求,「custom ./manage.py命令」看起來更容易實現。 – WebOrCode

+1

確實如此 - 但從長遠來看,學習芹菜將極大地提升您作爲開發者的價值。 –

相關問題