Соскребать твиты - лучше использовать сайт или API? - PullRequest
2 голосов
/ 20 апреля 2011

Я использую гем twitter для создания бота в Twitter на Ruby. Я пытаюсь сделать его самодостаточным, так что я хочу, чтобы он генерировал свой собственный контент для твитов, убирая твиты пользователей за пределами своего круга общения (а затем, возможно, искажая их с помощью генератора цепей Маркова).

Какая стратегия лучше?

  • Поиск твитов через API
  • Загрузка страниц Twitter и очистка твитов с помощью Hpricot или Nokogiri

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

В данный момент я использую файл .yml с твитами, которые я создал вручную, что далеко от идеала.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Здесь есть два вопроса.

Всегда лучше использовать API, если таковой имеется.Это защитит вас в будущем от случайного взлома бота при смене простого html-элемента, а также позволит веб-сайту (т. Е. Twitter) ограничивать количество поисковых запросов в случае, если вы слишком сильно загружаете сервис.Хотя это маловероятно для твиттера, это хорошая практика.

Иногда нужная информация недоступна через API.В этом случае вам следует подумать, действительно ли вам нужно это почистить, и если да, то как себя ограничить, чтобы быть вежливым.

По сути, если API позволяет вам делать то, что вы хотите, используйте его для удобства обслуживания..

Что касается вашего второго вопроса, у меня нет опыта работы с Twitter API.Есть ли способ получить твиттер-идентификаторы всех ваших подписчиков и за кем они следуют?Если нет, вы будете вынуждены очистить, как упоминалось ранее, - если вам действительно нужна эта информация.

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

Рассматриваете ли вы ретвит для этого аспекта бота?

0 голосов
/ 20 апреля 2011

Стоит также отметить производительность. Если бы вы очистили веб-сайт, вам пришлось бы загрузить всю страницу, а затем очистить страницу (поскольку она интенсивно использует процессор). В отличие от использования API, которое будет возвращать только данные JSON / XML.

Так что с точки зрения производительности, я бы пошел с API.

...