Программно определить количество комментариев к сообщению в блоге.

StackOverflow https://stackoverflow.com/questions/47869

  •  09-06-2019
  •  | 
  •  

Вопрос

Каков наиболее эффективный способ определить, сколько комментариев имеет конкретная запись в блоге?Мы хотим сохранить данные для нового веб-приложения.У нас есть список URL-адресов постоянных ссылок, а также RSS-каналов.

Это было полезно?

Решение

Если я правильно понимаю, вам нужна эвристика для оценки количества комментариев на HTML-странице, которая, как известно, является публикацией в блоге, да?

Очень часто конкретный блог имеет некоторые функции, которые облегчают работу.Если вы посмотрите на мою http://kstruct.com/ вы увидите, что на всех страницах с комментариями написано «X ответов», поэтому, если вы смогли поработать над каждым блогом, это, вероятно, не составит большого труда.

Если вам нужно что-то общее, я думаю, в комментариях есть несколько общих особенностей, которые вы могли бы обнаружить.Во-первых, любые ссылки в них, скорее всего, будут иметь атрибут rel="nofollow", поэтому наличие внутри блока может означать, что это комментарий.

Главное, на что стоит обратить внимание, — это изменения в структуре постов на одном и том же сайте.Например, очень велика вероятность того, что у каждого комментария будет свой собственный якорь, чтобы люди могли ссылаться непосредственно на него, чтобы вы могли видеть разное количество тегов <a name="XXX"> на одной странице на одной и той же странице. сайт, чтобы получить представление об относительном количестве комментариев.

Как отметил Майкл Стам, если на страницах есть канал комментариев-RSS, ваша жизнь значительно упрощается, поскольку вы можете получать данные комментариев в структурированном формате.

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

Другие советы

Если блог контролируется вами, возможно, лучше всего будет выбрать «Выбрать счетчик (commentid) ИЗ комментариев WHERE postID = 2».Если у вас есть только URL-адрес, но это все равно ваш блог/база данных, вам нужно создать подзапрос «WHERE postID = (ВЫБЕРИТЕ все, что ИЗ сообщений WHERE permalink = url)» или любой другой способ присоединения комментариев к сообщениям по URL-адресу.

Если это удаленный блог, у вас может возникнуть проблема: каждый блог имеет разный HTML-код.По сути, вам нужно будет создать анализатор, который анализирует HTML и ищет повторяющиеся элементы, такие как «div class=comment».Но это будет в основном ручной труд для каждого отдельного блога.

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

РЕДАКТИРОВАТЬ:Если у вас есть RSS-канал комментариев, вы может удачи в использовании механизма подсчета узлов XML, такого как XPath Считать.

В блогах почти всегда есть RSS-канал для комментариев.Если он у вас есть, то вы сможете определить точное количество комментариев, поскольку ленты в 99% случаев соответствуют стандарту.Даже если блог ваш собственный, если вы уже создаете RSS-канал, не беспокойтесь о вызове своей базы данных.Вы уже сделали это для создания канала, поэтому имеет смысл просто пройтись по узлам XML.Таким образом, у вас не будет дополнительных затрат (в зависимости от того, как часто вы хотите получать эту информацию).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top