Как я могу увидеть все заметки сообщения Tumblr из Python?

Скажем, я смотрю следующий пост Tumblr: http : //ronbarak.tumblr.com/post/40692813…
Он (в настоящее время) имеет 292 заметок.

Я хотел бы получить все вышеупомянутые примечания, используя скрипт Python (например, через urllib2, BeautifulSoup, simplejson или tumblr Api). В некоторых обширном Googling не было никаких предметов, связанных с извлечением нот в Tumblr.

Может ли кто-нибудь указать мне в правильном направлении, по которому инструмент позволит мне это сделать?

К сожалению, похоже, что API Tumblr имеет некоторые ограничения (недостаток метаинформации о Reblogs, ноты ограничены 50), поэтому вы не можете получить все заметки.

Также запрещено выполнять очистку страницы в соответствии с Условиями обслуживания .

«Вы не можете выполнять какие-либо из следующих действий при доступе или использовании Сервисов: (…) очистить Сервисы и, в частности, очистить контент (как определено ниже) от Сервисов без предварительного письменного согласия Tumblr»;

Источник:

https://groups.google.com/forum/?fromgroups=#!topic/tumblr-api/ktfMIdJCOmc

Без JS вы получаете отдельные страницы, содержащие только заметки. Для упомянутого сообщения в блоге первая страница будет:

http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy

Следующие страницы связаны внизу, например:

(См. Мой ответ о том, как найти следующий URL-адрес в атрибуте onclick ).

Теперь вы можете использовать различные инструменты для загрузки / анализа данных.

Следующая команда wget должна загружать все страницы заметок для этого сообщения:

 wget --recursive --domains=ronbarak.tumblr.com --include-directories=notes http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy 

Как и в случае с Fabio, лучше использовать API.

Если по каким-либо причинам вы не можете, то инструменты, которые вы будете использовать, будут зависеть от того, что вы хотите делать с данными в сообщениях.

  • для дампа данных: urllib вернет строку страницы, которую вы хотите
  • ищет конкретный раздел в html: lxml довольно хорош
  • ищет что-то в неуправляемом html: определенно beautifulsoup
  • поиск определенного элемента в разделе: beautifulsoup, lxml, разбор текста – это то, что вам нужно.
  • необходимо поместить данные в базу данных / файл: используйте scrapy

Схема url Tumblr проста: url / scheme / 1, url / scheme / 2, url / scheme / 3 и т. Д., Пока вы не дойдете до конца сообщений, и серверы больше не возвращают данные.

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

Следующее слово совета, пожалуйста, не забудьте положить небольшой сон (1000) в свой скрипт, потому что вы можете обратить внимание на серверы Tumblr.

как загрузить все заметки на tumblr? также охватывает тему, но реакция unor (выше) делает это очень хорошо.