假设我有一个数据库和一个RSS源。我必须找出RSS源中的新数据,这些数据尚未存在于数据库中。你会如何处理这个问题?
答案 0 :(得分:2)
如何为每个RSS项生成哈希码或一些唯一标识符,然后将其存储在数据库中?然后,您只需为新RSS中的每个项生成哈希码,并根据数据库进行检查。
答案 1 :(得分:2)
首先,您必须唯一地标识每个项目。这是有问题的,因为有些网站使用guid
元素,而有些网站则没有,对于某些项目,link
元素永远不会更改,而对于某些网站则不会。我认为一般的经验法则是,如果某个项目有guid
,那么您将其用作关键字,否则您将使用link
作为关键并希望。
一旦你确定了一个项目的密钥,你可以(可能)通过检查pubDate
元素来确定你正在查看的项目是否已经更新,如果故事得到这个元素应该更新更新。
这种方法可以处理大多数情况,但与RSS相关的所有情况一样,如果Feed提供程序运行不正常,它会崩溃。
答案 2 :(得分:1)
大多数RSS源都会有每个故事的日期 - 因此,请查询从数据库中提取最新故事的日期,从RSS源中提取所有最新故事,并比较日期。
这还取决于这是针对某个特定Feed还是您正在编写适用于多个Feed的内容。如果它适用于所有Feed,请使用其中一种散列方法;创建标题和日期的哈希值,并将其用作唯一标识符。
答案 3 :(得分:0)
从rss Feed中特定项目的唯一字段中提取。然后检查该项是否已在数据库中。在循环中运行此逻辑。
答案 4 :(得分:0)
手头,一些建议: