0

我已成功提取属于某个主题标签的推文。

对于对代码感兴趣的人,它位于底部。

这就是我所做的:#Dhoom3teaser

但是由于某些原因,我需要将每条推文都插入到我的表格中。如何在不重复的情况下定期插入一些东西。(即应根据时间戳插入推文)。如何区分推文?

我想可能是我会使用 setInterval。但后来想到可能有更好的解决方案。

希望我清楚吗?

<?php
ini_set('display_errors', 1);
require_once('TwitterAPIExchange.php');
include_once $_SERVER["DOCUMENT_ROOT"]."/includes/db/db_conn.php";

$settings = array(
    'oauth_access_token' => "",
    'oauth_access_token_secret' => "",
    'consumer_key' => "",
    'consumer_secret' => ""
);
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$getfield = '?q=#Dhoom3Teaser';
$requestMethod = 'GET';

$twitter = new TwitterAPIExchange($settings);
$response = $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest();

$decoded = json_decode($response);

echo '<pre>';print_r($decoded);echo '<pre>';
4

2 回答 2

1

你想要一个 cron 工作。这是一篇关于如何设置它的文章:http ://www.thesitewizard.com/general/set-cron-job.shtml

什么是 cron 作业,只是按计划运行脚本的标准方法。因此,每天一次,或每小时一次,或每月第三个星期六的 2:15,等等。您将编写 cron 作业,以便它运行您的推文抓取脚本,然后确保如果没有重复的推文,您将在插入新推文之前检查表中的重复项。我确定(但可能是错误的)每条推文都有某种推文 ID,因此在插入之前确保表格中不存在具有该 ID 的推文。

编辑:实际上,最好让你的表使每一行的 ID 都是唯一的。您不必以这种方式编写任何额外的 php。

于 2013-09-19T17:42:43.233 回答
0

看这里: https ://dev.twitter.com/docs/platform-objects/tweets

您想要的属性是“id(唯一标识一条推文)。

编辑一些进一步的想法:如果我必须用 PHP 来做,我会尽可能使用 cronjobs。要存储 unique_id(以及推文数据中所需的其他字段),您可以只使用 mysql 表(并使用 id 作为主键)。如果您没有该领域的经验,那将更加困难,因为这是 imo 保存大量推文并避免重复的最简单方法。

对于搜索 api 部分:有一个参数“since_id”,基本上是一个大于过滤器。因此,如果您保存了上次检索到的推文,您可以使用它继续搜索并检索比上次保存的推文更新的推文(因此无论如何都不应该有任何重复)。

于 2013-09-19T17:16:19.420 回答