我有一个基于Django的网站使用在Webfaction上托管的PostgreSQL数据库。我通常从另一个网站手动收集我的数据库的数据(复制粘贴到文本文件中),该网站列出了HTML表格中单个网页上的所有数据。
至于使用Python自动收集数据,我猜我应该使用像html5lib或Scrapy之类的东西来编写一个加载网页的脚本,找到我想要的HTML表格,从中提取数据,格式它进入JSON,然后使用
manage.py loaddata fixturename.json
将我的数据加载到我的数据库中。不过,我的问题是如何让这个脚本每天在Webfaction的服务器上自动运行一次?
答案 0 :(得分:3)
您可以使用cron来安排任务。
您的crontab文件可能如下所示:
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 1 * * * /usr/bin/python manage.py loaddata fixturename.json
(或者您可以使用@daily /usr/bin/python manage.py loaddata fixturename.json
每晚午夜运行)
请参阅webfaction文档:http://docs.webfaction.com/software/general.html#scheduling-tasks-with-cron
答案 1 :(得分:1)
您可以YQL为您删除网站并以json格式返回结果。我广泛使用YQL来获取我的应用程序的数据。它很快,您的服务器也不必承担它的负担。
http://developer.yahoo.com/yql/
要每天运行一次脚本,您可以尝试将其添加到cron作业
http://docs.webfaction.com/software/general.html#scheduling-tasks-with-cron
http://garrett.im/django/sysadmin/2011/10/03/cron-django-webfaction.html
答案 2 :(得分:1)
您想要运行CRON作业。这是让服务器在您设置的任何计划上一次或多次运行作业的简单方法。
另外,请确保您有权筛选其他人的内容。
答案 3 :(得分:1)
Cron或celerybeat是不错的选择。 Cron更容易,芹菜给你更多的控制
http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html