以编程方式确定博客帖子有多少评论
确定特定博客帖子有多少评论的最有效方法是什么?我们要存储新Web应用程序的数据。我们有一个永久链接URl以及RSS提要的列表。
解决方案
回答
如果博客是由我们控制的,则"最好在评论中,从postID = 2的地方选择count(commentid)"将是最好的选择。如果仅具有URL,但仍是博客/数据库,则需要创建子查询" WHERE postID =(选择任何FROM文章,其中永久链接= URL)",或者以任何方式将评论从URL加入到文章中。
如果它是一个远程博客,则我们会遇到每个博客都有不同HTML的问题。本质上,我们将需要构建一个解析器来解析HTML,并寻找重复的元素,例如" div class = comment"。但这大部分将是每个不同博客的体力劳动。
一些博客可能有更好的方法,例如在HTML或者某些界面中的注释计数,但是我不知道任何标准化的方法。
编辑:如果我们获得Comment-RSS提要,则我们可能会幸运地使用了对XML节点进行计数的机制,例如XPath的Count。
回答
如果我理解正确,那么我们希望启发式估计HTML页面中的评论数,该页面被称为博客文章,是吗?
通常,特定博客会具有一些易于编制的功能。如果我们在http://kstruct.com/上浏览我的内容,我们会看到所有带有注释的页面都显示" X Responses",因此,如果我们能够在每个博客的基础上做一些工作,那可能不是难的。
如果我们需要通用的东西,我想我们可以检测到注释的一些常用功能。首先,它们中的任何链接都极有可能具有rel =" nofollow"属性,因此在块中看到它可能意味着它是注释。
要寻找的最有趣的事情是同一站点中帖子结构的更改。例如,每个评论都有一个自己的锚点的可能性很大,以便人们可以直接链接到它,因此我们可以在同一页面的给定页面中查看不同数量的<a name="XXX">标签网站以了解评论的相对数量。
正如Michael Stum所指出的,如果页面上有Comment-RSS feed,那么生活就变得轻松多了,因为我们可以以结构化格式获取评论数据。
总而言之,我认为总体而言,这将是一个极具挑战性的问题。
回答
博客几乎总是有RSS feed来评论。如果有的话,我们就可以确定确切的评论数,因为提要99%的时间都遵循标准。即使博客是我们自己的博客,如果我们已经在生成RSS feed,那么也不必打扰数据库。我们已经完成了生成提要的操作,因此有意义的是我们只需遍历XML节点。这样,我们就没有额外的开销了(取决于我们希望多久获取一次此信息)。