2

作为 STEM 的一名大学教师,我喜欢使用技术来增强学生的学习体验,我也喜欢它允许我向他们介绍很酷的技术。

在过去的一年里,我有几个班级在 Posterous 网站 (http://spectrawiki.posterous.com) 上发帖,并对其他人的帖子发表评论。这是课程所必需的,我一直在跟踪课堂活动。

我希望我能以某种方式下载网站内容,从而为我提供所需的数据(发布者、发布时间以及是否发布了文章或评论),但 Posterous 没有此功能。一位反应迅速的Posterous Tech 建议我查看API。

但我不是编码员。我对编码(HTML、PHP、matlab、python、R、Mathematica)有足够的了解,以尊重那些真正知道自己在做什么的人。

所以我问 Stack Overflow 社区:我怎样才能将某些东西(例如,python 脚本)与 API 组合在一起以获取我正在寻找的数据(如上所列)?是否有任何教程可以引导我完成构建脚本的步骤?我以前从未使用过 API,所以我真的不知道从哪里开始。

在此先感谢您的任何指点。

[编辑]例如:Posterous API Reference 有一个这样的例子

 curl -X PUT --user you@example.com:password -d "api_token=<your token>" -d "post[title]=New Title" http://posterous.com/api/2/sites/12345/posts/6789

当它谈到 API 是 RESTful 时。如何修改此 curl 命令以返回有关我的Posterous 站点的某些类型的信息?我可以(可能)处理身份验证标志和该令牌标志。但是使用其他标志,这就是我可以使用指针的地方。

4

1 回答 1

2

跟进,2012 年 12 月 5 日: 看起来 pyposterous 不再有效。我的脚本失败并且 pyposterous 未能通过自己的单元测试。真可惜。

====

Pyposterous 确实给了我回答我的问题的工具,所以我想我会在这里分享给其他人。这是我写的脚本:

import datetime
import pyposterous
from pyposterous import Cursor

api = pyposterous.API(username='[username]', password='[passwd]')

d=datetime.datetime.today().strftime("%y%B%d-%H%M")
filename = 'report-posts-' + str(d) +'.txt' 
log=open(filename,'w')

for post in Cursor(method=api.read_posts, start_page=1, parameters={'hostname':'spectrawiki'}):
    try:
        print >> log,  "--------------------"
        print >> log, "%s, %s, %s" % (post.author, post.date, post.title)
    except AttributeError:
        pass # No comments
    except UnicodeEncodeError:
        pass

这是一个粗略的脚本,但它完成了基本工作。

于 2011-10-14T21:02:27.060 回答