Determine programaticamente quantos comentários uma postagem do blog tem

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Qual é a maneira mais eficiente de determinar quantos comentários uma determinada postagem de blog tem?Queremos armazenar os dados para um novo aplicativo web.Temos uma lista de URLs de links permanentes, bem como feeds RSS.

Foi útil?

Solução

Se bem entendi, você deseja uma heurística para estimar o número de comentários em uma página HTML que é conhecida como uma postagem de blog, certo?

Muitas vezes, um blog específico terá alguns recursos que facilitam o seu trabalho.Se você olhar para o meu http://kstruct.com/ você verá que todas as páginas com comentários dizem 'X Respostas', então, se você conseguiu fazer algum trabalho por blog, provavelmente não será realmente difícil.

Se você precisasse de algo genérico, acho que existem alguns recursos comuns nos comentários que você pode detectar.Por um lado, qualquer link neles provavelmente terá atributos rel="nofollow", portanto, ver isso dentro de um bloco pode implicar que é um comentário.

O principal interessante a se observar seriam mudanças na estrutura de postagens do mesmo site.Por exemplo, também há uma boa chance de que cada comentário tenha sua própria âncora para que as pessoas possam vincular diretamente a ele, então você pode observar os diferentes números de tags <a name="XXX"> em uma determinada página na mesma página. site para ter uma ideia do número relativo de comentários.

Como Michael Stum apontou, se as páginas tiverem um feed RSS de comentários, sua vida ficará muito mais fácil porque você poderá obter os dados dos comentários em um formato estruturado.

No geral, porém, acho que será um problema bastante desafiador de resolver em geral.

Outras dicas

Se o blog for controlado por você, um "Select count(commentid) FROM comments WHERE postID = 2" será possivelmente a melhor coisa.Se você só tem o URL, mas ainda é o seu blog/banco de dados, você precisa criar uma subconsulta "WHERE postID = (SELECT any FROM posts WHERE permalink = url)" ou qualquer que seja a sua maneira de juntar os comentários às postagens a partir de um URL.

Se for um blog remoto, você terá o problema de cada blog ter um HTML diferente.Essencialmente, você precisará construir um analisador que analise o HTML e procure elementos repetidos como "div class=comment".Mas isso será principalmente um trabalho manual para cada blog diferente.

Alguns blogs podem ter maneiras melhores, como contagem de comentários em algum lugar do HTML ou de alguma interface, mas não conheço nenhuma forma padronizada.

EDITAR:Se você tiver um feed RSS de comentários, você poderia tenha sorte usando um mecanismo que conta nós XML, como o XPath Contar.

Os blogs quase sempre possuem um feed RSS para comentários.Se você tiver isso, poderá determinar o número exato de comentários, já que os feeds 99% das vezes seguem um padrão.Mesmo que o blog seja seu, se você já estiver gerando um feed RSS, não se preocupe em fazer uma ligação para seu banco de dados.Você já fez isso para gerar o feed, então faz sentido apenas percorrer os nós XML.Dessa forma você não tem sobrecarga adicional (dependendo da frequência com que deseja obter essas informações).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top