2013-03-15 2 views
1

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

  1. API, который требует аутентификации пользовательскому
  2. XML RPC (Не знаю, которые все поддерживают его)
  3. RSS (Опять же, не уверен, которые поддерживают его блоги и даже если они делают, сколько может один получить от RSS-каналы.)
  4. Atom

Я знаю, что это не строго связанный с программированием вопрос, но я пошел вперед, спрашивая об этом, потому что есть большая путаница в отношении того, что использовать и что лучше обслуживать?

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

ответ

2

RSS является самым старым, который пришел в употребление. Есть ограничения на это. Atom был предназначен для замены для него, преодолевая ограничения RSS. Atom - это просто специализированная форма XML RPC. Другими словами, существуют другие применения XML RPC, а Atom - это вариация, которую вы хотите. Все вышесказанное представляет собой тип API. Поэтому идеально, что вы хотите сделать, это поддержка RSS и Atom. Печально Atom и RSS не поддерживают обратную совместимость. Цитирую Wikipedia on "Atom":

В частности, многие блоги и вики-сайты предлагают их веб-каналы в формате Atom.

@ Решение porneL не рекомендуется (на данный момент). Однако в будущем HTML-разметка будет изменена, чтобы улучшить смысловое значение, данное блокам, например новый тег <article>. Это будет еще один способ анализа документов. Это будет наиболее универсальным, но, на мой взгляд, это будет очень долгое время, прежде чем он станет надежным, поскольку многие, если не большинство сайтов, страдают синдромом «суп-тег».

+0

Итак, вы говорите, что если мне нужно получить все данные из блога, Atom или RSS должны делать? Что делать, если блог не поддерживает RSS или частично его поддерживает. Затем? – Hick

+0

Ваш код должен делать все возможное, чтобы проверить, что поддерживает блог. Первый тестовый Atom, поскольку он наиболее универсален. В противном случае проверьте RSS. Для каждого из них вам также нужно будет проверить разные поля, чтобы увидеть, пусты ли они. Это может помочь прочитать официальные спецификации чтения для Atom и RSS, чтобы узнать, что такое стандартная реализация. Помните, конечно, что некоторые блоги могут неправильно кодироваться. Однако, если вы просто хотите, чтобы название, тело и временная метка, надеюсь, у вас не было бы слишком много проблем. – Jodes

1

Самый универсальный «стандарт» сканирует и анализирует HTML.

wget -m http://example.com/ 

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

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

+0

Я обычно сканирую большинство сайтов. Но это больно, поскольку при очистке данных могут быть потери данных. Readablity в значительной степени мой точный usecase. Но они сканируют только одну страницу. Что произойдет, если вы должны сканировать полный архив?Не будет ли решение на основе API лучше? – Hick

+0

Да, API определенно будет более высоким, но нет единого API, который работает на всех сайтах. – Kornel

Смежные вопросы