как пройти через 5000 пользователей Twitter, чтобы получить биографию / описание - PullRequest
1 голос
/ 02 апреля 2011

У меня есть текстовый файл с 5000 пользователей Twitter: -

JRJSHEARD
KMM_1979
ELMOCHLOE
ANNIEMMERSON
PATLOCKLEY
LISSYNUMBER
CAL32INCHSCREEN
PRINGLEDUDE
CORESMUSIC

Я нашел этот API http://api.twitter.com/1/users/show.xml?screen_name=JRJSHEARD, который действительно полезен и именно то, что мне нужно.

Как бы я написал функцию php, чтобы просмотреть имена пользователей в текстовом файле и добавить их биографию между этими тегами (<description> </description>).

Возможно ли это? Любая помощь будет с благодарностью получена.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011

Если вы хотите собирать информацию о пользователях из Twitter, используйте users / lookup вместо users / show .Вызов API users / lookup возвращает 100 пользовательских объектов за раз, и вы можете либо передавать идентификаторы пользователей или отображаемые имена при выполнении вызова, однако для использования вам потребуется аутентификация с использованием OAuthit.

Я рекомендую использовать 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

0 голосов
/ 02 апреля 2011
$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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...