Как спарсить пользователей вконтакте онлайн?
Как спарсить пользователей вконтакте онлайн?
Добрый вечер!
Помогите разобраться. Есть список ID вконтакте, над определить кто в текущий момент онлайн. Это можно посмотреть посредством API. В одном запросе можно задать до 1000 ID. Запрос такого вида:
https://api.vk.com/method/users.get.XML ... lds=online
На выходе имеем xml разметку:
<?xml version="1.0" encoding="UTF-8"?>
-<response list="true">
-<user>
<uid>111111111</uid>
<first_name>DELETED</first_name>
<last_name/>
<deactivated>deleted</deactivated>
<online>0</online>
</user>
-<user>
<uid>222222222</uid>
<first_name>Саша</first_name>
<last_name>Иванов</last_name>
<online>0</online>
</user>
</response>
Те кто онлайн, в поле <online>0</online> будет 1.
Не могу вытянуть данные с этой страницы. $webpage->get_body_inter_prefix_all не работает. А как ещё это можно сделать?
Или может есть какой то другой способ? На выходе нужен список ID тех кто сейчас онлайн. Буду рад любому решению. Заранее спасибо.
Помогите разобраться. Есть список ID вконтакте, над определить кто в текущий момент онлайн. Это можно посмотреть посредством API. В одном запросе можно задать до 1000 ID. Запрос такого вида:
https://api.vk.com/method/users.get.XML ... lds=online
На выходе имеем xml разметку:
<?xml version="1.0" encoding="UTF-8"?>
-<response list="true">
-<user>
<uid>111111111</uid>
<first_name>DELETED</first_name>
<last_name/>
<deactivated>deleted</deactivated>
<online>0</online>
</user>
-<user>
<uid>222222222</uid>
<first_name>Саша</first_name>
<last_name>Иванов</last_name>
<online>0</online>
</user>
</response>
Те кто онлайн, в поле <online>0</online> будет 1.
Не могу вытянуть данные с этой страницы. $webpage->get_body_inter_prefix_all не работает. А как ещё это можно сделать?
Или может есть какой то другой способ? На выходе нужен список ID тех кто сейчас онлайн. Буду рад любому решению. Заранее спасибо.
Re: Как спарсить пользователей вконтакте онлайн?
Код: Выделить всё
$xml = '<?xml version="1.0" encoding="UTF-8"?>
-<response list="true">
-<user>
<uid>111111111</uid>
<first_name>DELETED</first_name>
<last_name/>
<deactivated>deleted</deactivated>
<online>0</online>
</user>
<user>
<uid>222222222</uid>
<first_name>Саша</first_name>
<last_name>Иванов</last_name>
<online>1</online>
</user>
</response>';
preg_match_all('#<uid>([^<]+)</uid>.+?<online>([^<]+)</online>#is', $xml, $match);
$online = array();
for ($i = 0; $i < count($match[1]); $i++) {
if ($match[2][$i] == 1) $online[] = $match[1][$i];
}
print_r($online);
Re: Как спарсить пользователей вконтакте онлайн?
bok2007 спасибо.
А как переменной $xml присвоить текст страницы?
get_source и get_body не получается.
А как переменной $xml присвоить текст страницы?
get_source и get_body не получается.
Re: Как спарсить пользователей вконтакте онлайн?
jafar писал(а):bok2007 спасибо.
А как переменной $xml присвоить текст страницы?
get_source и get_body не получается.
Код: Выделить всё
$xml = $webpage->get_body();
Re: Как спарсить пользователей вконтакте онлайн?
Я ж говорю, так не получается (bok2007 писал(а):jafar писал(а):bok2007 спасибо.
А как переменной $xml присвоить текст страницы?
get_source и get_body не получается.Код: Выделить всё
$xml = $webpage->get_body();
Re: Как спарсить пользователей вконтакте онлайн?
Должно получаться. В главной вкладке браузера ответ от ВК приходит или в новом окне?jafar писал(а):Я ж говорю, так не получается (bok2007 писал(а):jafar писал(а):bok2007 спасибо.
А как переменной $xml присвоить текст страницы?
get_source и get_body не получается.Код: Выделить всё
$xml = $webpage->get_body();
Re: Как спарсить пользователей вконтакте онлайн?
не получается. Даже если вот так делаю, и всё равно пусто:
echo $xml = $webpage->get_body();
Открывается в главной вкладке. Делаю вот так:
$browser->navigate('https://api.vk.com/method/users.get.XML ... lds=online');
echo $xml = $webpage->get_body();
Открывается в главной вкладке. Делаю вот так:
$browser->navigate('https://api.vk.com/method/users.get.XML ... lds=online');
Re: Как спарсить пользователей вконтакте онлайн?
jafar писал(а):не получается. Даже если вот так делаю, и всё равно пусто:
echo $xml = $webpage->get_body();
Открывается в главной вкладке. Делаю вот так:
$browser->navigate('https://api.vk.com/method/users.get.XML ... lds=online');
Код: Выделить всё
$xml = $webpage->get_source();
Код: Выделить всё
$xml = file_get_contents("https://api.vk.com/method/users.get.XML?user_ids=111111111,222222222&fields=online");
Re: Как спарсить пользователей вконтакте онлайн?
ещё раз спасибо, всё работает