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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
197
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

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

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

Обновлено: если у вас есть канал комментариев-RSS, вам, май, повезло с использованием механизма, который подсчитывает узлы XML, например Считать XPath.

Ответ принят как подходящий

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

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

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

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

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

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

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

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