Каков наиболее эффективный способ определить, сколько комментариев имеет конкретное сообщение в блоге? Мы хотим сохранить данные для нового веб-приложения. У нас есть список постоянных ссылок URl, а также RSS-каналов.Программно определить, сколько комментариев в блоге
ответ
Если я правильно понял, вы хотите, чтобы эвристика оценивала количество комментариев на HTML-странице, которая, как известно, является записью в блоге, да?
Очень часто определенный блог будет иметь некоторые функции, которые облегчают работу. Если вы посмотрите на мой номер на http://kstruct.com/, вы увидите, что на всех страницах с комментариями сказано «X Responses», поэтому, если вы смогли выполнить некоторую работу на основе блога, это, вероятно, не очень сложно.
Если вам нужно что-то общее, я думаю, есть несколько общих особенностей, которые есть у комментариев, которые вы могли бы обнаружить. Во-первых, любые ссылки в них, скорее всего, будут иметь атрибуты rel = "nofollow", поэтому, видя, что внутри блока может подразумеваться, что это комментарий.
Главное, что нужно искать, это изменения в структуре сообщений для одного и того же сайта. Например, есть также очень хорошая вероятность, что каждый комментарий будет иметь свой собственный якорь, чтобы люди могли напрямую ссылаться на него, чтобы вы могли посмотреть на разные числа < имя = "XXX" > теги на данной странице на том же чтобы получить представление об относительном количестве комментариев.
Как отметил Майкл Штум, если на страницах есть RSS-канал «Комментарий-RSS», ваша жизнь становится намного проще, потому что вы можете получить данные комментариев в структурированном формате.
В целом, однако, я думаю, что это будет довольно сложная проблема для решения в целом.
Если блог контролируется вами, выберите «Выберите счетчик (комментарий) FROM comments WHERE postID = 2», возможно, самое лучшее. Если у вас есть только URL-адрес, но все же это ваш блог/db, вам нужно создать подзапрос «WHERE postID = (SELECT независимо от сообщений WHERE permalink = url)» или как бы вы не присоединились к комментариям к сообщениям из URL-адреса.
Если это удаленный блог, у вас есть проблема, что каждый блог имеет разные HTML. По сути, вам понадобится создать парсер, который анализирует HTML и ищет повторяющиеся элементы, такие как «div class = comment». Но это будет главным образом ручной труд для каждого из разных блогов.
Некоторые блоги могут иметь лучшие способы, как комментарий, где-то в HTML или каком-то интерфейсе, но я не знаю ни одного стандартизованного способа.
EDIT: Если у вас есть RSS-канал для комментариев, вы можете использовать may, используя механизм, который учитывает узлы XML, такие как XPath's Count.
Блоги почти всегда имеют RSS-канал для комментариев. Если у вас есть это, вы можете определить точное количество комментариев, так как каналы в 99% случаев соответствуют стандарту. Даже если блог является вашим собственным, если вы уже создаете RSS-канал, то не беспокойтесь о том, чтобы позвонить в вашу БД. Вы уже сделали это для создания фида, поэтому имеет смысл, что вы просто проходите XML-узлы. Таким образом, у вас нет дополнительных накладных расходов (в зависимости от того, как часто вы хотите получить эту информацию).