Как использовать Posterous API, чтобы «почистить» мой собственный сайт для получения информации об участнике, дате и ответной информации - PullRequest
2 голосов
/ 30 сентября 2011

Будучи преподавателем колледжа в STEM, мне нравится, когда я могу использовать технологии для улучшения обучения своих учеников, и мне вдвойне нравится, когда это позволяет мне также познакомить их с крутыми технологиями.

В течение прошлого года у меня было несколько классов, делающих сообщения на постере Posterous (http://spectrawiki.posterous.com) и оставляющих комментарии к постам других. Это необходимо для курса, и я буду обременен отслеживанием классной деятельности.

Я надеялся, что смогу загружать контент сайта так, чтобы он предоставил мне нужные мне данные (кто разместил, когда они разместили, и если они разместили статью или комментарий), но у Posterous такой функции нет. Очень отзывчивый Posterous Tech предложил мне взглянуть на API.

Но я не кодер. Я достаточно разбираюсь в кодировании (HTML, PHP, matlab, python, R, Mathematica), чтобы уважать тех, кто действительно знает, что делает.

Поэтому я спрашиваю сообщество переполнения стека: как я могу соединить что-то (например, скрипт на python) с API, чтобы получить данные, которые я ищу (перечислены выше)? Есть ли какие-нибудь учебные пособия, которые позволят мне пройти через этапы создания сценария? Я никогда раньше не использовал 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, чтобы она возвращала некоторую информацию о моем сайте Posterous? Я могу (вероятно) обрабатывать флаги аутентификации и этот маркерный флаг. Но используя другие флаги, я могу использовать указатель.

1 Ответ

2 голосов
/ 15 октября 2011

Продолжение, 5 декабря 2012 г .: Похоже, что пиостероз больше не работает.Мои сценарии терпят неудачу, и 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

Это грубый скрипт, но он выполняет основную работу.

...