如何只将新推文/ Instagram照片保存到数据库?

时间:2013-07-25 13:43:28

标签: php database twitter instagram

我正在建立一个两个cron-jobs,定期根据标签搜索新的推文和Instagram照片(以及可能更多的服务)。

内容保存到数据库中,稍后输出到网页。这样可以加快加载速度,更重要的是可以删除某些推文,因此不会显示它们。

我想确保在数据库中没有两次保存帖子,并且不确定哪种方法最好。以下是我考虑的一些选项:

  • 我使用Laravel并且能够要求postID是唯一的,当我尝试保存已经存在的帖子时,这会使数据库拒绝。这可能会导致不熟悉的SQL查询。
  • 我可以检查数据库中是否有最新保存的帖子ID,并在我到达该帖子后停止循环。
  • 在Twitter上的Atleast,我可以传递参数since_id,这让我可以获得最新的帖子。但是我没有在instagram中找到相同的参数,也不能用于html-scraping。

2 个答案:

答案 0 :(得分:2)

Twitter提供'created_at'值,为您提供创建推文的日期和时间。

每次运行cron作业时,存储日期和时间,然后在下次运行时,只有在日期/时间早于“created_at”值时才上传推文。

我对Instagram不太熟悉,抱歉 - 但我认为同样的逻辑适用。

["created_at":"Wed Aug 27 13:08:45 +0000 2008"][1]

答案 1 :(得分:0)

即使Instagram中没有“since_id”参数,您基本上可以做同样的事情。

获取您在数据库中的最后一篇文章的ID。按ID排序你的新Instagram帖子数组。然后,您应该能够轻松地从数组中删除id低于数据库中最后一个id的帖子。

完成后,您可以将它们保存在数据库中。

请注意,使用时间戳而不是ID可以完成相同的操作。