如何循环通过5,000个Twitter用户来获取生物/描述

时间:2011-04-02 13:17:56

标签: php twitter

我有一个包含5,000个Twitter用户的文本文件: -

JRJSHEARD
KMM_1979
ELMOCHLOE
ANNIEMMERSON
PATLOCKLEY
LISSYNUMBER
CAL32INCHSCREEN
PRINGLEDUDE
CORESMUSIC

我发现这个API http://api.twitter.com/1/users/show.xml?screen_name=JRJSHEARD非常有用,正是我需要的。

我如何编写一个php函数来遍历文本文件中的用户名,并在这些标记之间附加他们的bio(<description> </description>)

这可能吗?我们将非常感激地提供任何帮助。

2 个答案:

答案 0 :(得分:2)

如果您想从Twitter批量收集用户信息,请使用 users/lookup 而不是 users / show users / lookup API调用一次返回100个用户对象,您可以在拨打电话时传递用户ID或屏幕名称,但是您需要使用OAuth进行身份验证才能进行身份验证用它。

我建议使用JSON,因为它是一种比XML更轻量级的文档格式。您通常只会通过网络传输大约1/3到1/2的数据,并且我发现(根据我的经验)Twitter在服务JSON时的次数较少。

http://api.twitter.com/1/users/lookup.json?screen_name=JRJSHEARD,KMM_1979,ELMOCHLOE

这是直接的API调用,但是如果你刚刚开始,我建议使用Twitter服务实现,而不是尝试自己做所有繁重的工作。我不是一个PHP人员,但我的PHP使用推特的朋友推荐Zend - http://framework.zend.com/manual/en/zend.service.twitter.html

答案 1 :(得分:-2)

$api = "http://api.twitter.com/1/users/show.xml?screen_name=";

$users = file("users.txt", FILE_IGNORE_NEW_LINES);

$i = 0;
foreach($users as $user){
    $data = curl("$api$user");
    preg_match("#<description>(.*?)</description>#is", $data, $matches);
    $bio[$i]["user"] = $user;
    $bio[$i]["description"] = $matches[1];
$i++;
}

function curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_close($ch);
    return curl_exec($ch);
}