1

所以我已经有一个脚本,它使用 xml 格式的 API 收集 Twitter 用户的前 4999 个关注者 ID。我半理解游标过程是如何工作的,但我很困惑如何实现它以循环直到它收集所有关注者。我试图收集的用户将接听大约 8 个电话。关于如何实现游标循环的任何想法?

<?php
 $xmldata = 'http://api.twitter.com/1/followers/ids/microsoft.xml';
 $open = fopen($xmldata, 'r');
 $content = stream_get_contents($open);
 fclose($open);
 $xml = simplexml_load_file($xmldata);
 $cursor = $xml->next_cursor;
 $file = fopen ('output1.csv', 'w+');
fwrite($file, "User id\n\r");
 while($cursor =! 0)
 {
 foreach ($xml->ids->id as $id) 
 {
    fwrite($file, $id . ", ");
fwrite($file, "\n");


 }
 $xmldata = 'http://api.twitter.com/1/followers/ids.xml?cursor='. $cursor
.'&screeb_name=microsoft';
 ?>
4

1 回答 1

3

让我以微软目前的追随者(346K 追随者)为例。

https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=microsoft

它只获取 5000 个用户 ID,这是 twitter API 的限制。因此,您需要从 json 输出中获取 next_cursor 字符串

next_cursor_str":"1418048755615786027"

所以,你的下一个电话是

https://api.twitter.com/1/followers/ids.json?cursor=1418048755615786027&screen_name=microsoft

继续这样做,直到 next_cursor 为零。

当您一次又一次地这样做时,只需继续存储所有ID ..

于 2012-11-12T00:50:36.367 回答