Парсер пользователей вконтакте [неработает]

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
Gilman
Сообщения: 8
Зарегистрирован: 08 мар 2013, 00:49

Парсер пользователей вконтакте [неработает]

Сообщение Gilman » 13 июн 2013, 12:53

Код парсера

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../../Templates/xweb_human_emulator.php");
//$anchor->set_focus_by_href("/about",false);
$tab2 = file("D:\\sent.txt");
print_r($tab2);
$browser->navigate('http://vk.com/search?c%5Bcountry%5D=145&c%5Bname%5D=1&c%5Bonline%5D=1&c%5Bphoto%5D=1&c%5Bsection%5D=people');
for ($x=1000; $x<1000; $x=$x+1000) 
//for ($x=1000; $x<80000; $x=$x+1000) 
{
$result=$browser->set_vertical_scroll_pos($x);
sleep(1);
$x."<br>".$result;

}
sleep(5);
$ids=$webpage->get_body_inter_prefix_all('<div class="labeled name"><a onclick="return nav.go(this, event);" href="/id','">',true);
$tab1=explode("<br>",$ids);
print_r($tab1);
$result = array_diff($tab1, $tab2);

print_r($result);


// Quit
$app->quit();
?>
Скрипт должен промотать вниз и пропарсить всех пользователей в массив с помощью get_body_inter_prefix_all, далее сравнить два массива в функции array_diff и оставить те айди которых нет в $tab2, нужно это для того, что бы небыло дублей, при новом парсинге.

Проблемная часть:

Код: Выделить всё

$ids=$webpage->get_body_inter_prefix_all('<div class="labeled name"><a onclick="return nav.go(this, event);" href="/id','">',true);
$tab1=explode("<br>",$ids); 
Массив начинает заполнятся так:
  • Array
    (
    [0] => false17220062
    [1] => 174831467
    [2] => 7608588
    [3] => 1244470
    [4] => 66818532
возможно эта причина, не знаю. Но в результате $result = array_diff($tab1, $tab2); не работает и все айдишники, включая старых выводятся в результате.

Делал эксперимент такого рода:

Код: Выделить всё

$tab1 = file("D:\\sent.txt");
$tab2 = file("D:\\sent2.txt");
$result = array_diff($tab1, $tab2);

print_r($result);
 

Не знаю как исправить проблему, прошу помощи.

Методом тыка все же установил, что проблема в:

$tab2 = file("D:\\sent.txt");

Ответить