作为STEM的大学教师,我喜欢使用技术来提升学生的学习体验,而且当我允许我将它们介绍给酷科技时,我更喜欢它。
去年,我有一些课程向Posterous网站(http://spectrawiki.posterous.com)发帖,并在其他人的帖子上发表评论。这是课程所必需的,我一直在跟踪课堂活动。
我希望我可以下载网站内容,以便为我提供我需要的数据(发布时间,发布时间,以及发布文章或评论),但Posterous没有此功能。一个非常敏感的Posterous Tech建议我查看API。
但我不是编码员。我对编码(HTML,PHP,matlab,python,R,Mathematica)足够了解,以尊重那些真正知道自己在做什么的人。
所以我问Stack Overflow社区:我怎么能用API来组合一些东西(例如python脚本)来获取我正在寻找的数据(如上所列)?是否有任何教程可以引导我完成构建脚本的步骤?我之前从未使用过API,所以我真的不知道从哪里开始。
提前感谢任何指示。
[编辑] 例如:Posterous API参考有一个这样的例子
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命令以返回有关 my Posterous网站的某些类型的信息?我可以(可能)处理身份验证标志和令牌标志。但是使用其他标志,我可以使用指针。
答案 0 :(得分:2)
后续行动,2012年12月5日:看起来像是邪恶不再有效。我的脚本失败,而且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
这是一个粗略的脚本,但它完成了基本的工作。