0

我有一个基于 Django 的网站,使用 Webfaction 上托管的 PostgreSQL 数据库。我通常从另一个网站手动收集我的数据库的数据(复制粘贴到文本文件中),该网站在 HTML 表中列出了单个网页上的所有数据。

至于用 Python 自动收集数据,我猜我应该使用 html5lib 或 Scrapy 之类的东西来编写一个脚本来加载网页,找到我想要的 HTML 表,从中提取数据,将其格式化为 JSON ,然后使用

manage.py loaddata fixturename.json

将我的数据加载到我的数据库中。不过,我的问题是,如何让这个脚本每天在 Webfaction 的服务器上自动运行一次?

4

4 回答 4

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

于 2013-01-25T04:08:45.527 回答
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

于 2013-01-25T04:08:41.207 回答
1

您想运行 CRON 作业。这是让服务器按照您设置的任何时间表运行一次或重复运行作业的一种简单方法。

还要确保您有权屏蔽抓取他人的内容。

于 2013-01-25T04:09:13.680 回答
1

Cron 或 celerybeat 是不错的选择。Cron 更简单,celery 给你更多控制权

http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

于 2013-01-25T04:20:45.190 回答