Ворчун
( )
27/07/2009 15:31:53
Re: Вы получили неверные данные по Интимсити

Цитата:

Цитата:
Хотя эта "большая" скорость всего ~20 сек. на стр. (скрипт открывает одну стр. в буфер и потом копирует с нее анкеты со скоростью 2-3 анкеты/сек, потом еще одну стр. и т.д.).


2-3 страницы в секунды - это не нормальная скорость для человека.

Цитата:

У вас анкету, кот. не обновлялась недели две, практически невозможно увидеть.


Все анкеты доступны из главного каталога, начинающиеся с главной страницы сайта. Сначала идут анкеты, оплатившие рекламу, а за ними - анкеты, рекламирующиеся бесплатно, отсортированные по дате обновления. Зайдите на главную страницу сайта и нажмите на одну из последних страниц каталога, проверьте даты обновления анкет, размещенных на этих страницах - они не обновлялись по несколько месяцев.


Теперь вернемся непосредственно к Вашей программе. 390 уникальных анкет - это и есть неверный результат. Я не знаю как работает Ваша программа, но я написал свой аналогичный скрипт, чтобы проверить Ваше утверждение, результат: более 1700 уникальных телефонов с одного единственного прохода. Ищите ошибку в своей программе. Вот мой скрипт, можете проверить сами:

@set_time_limit(0);
function getContent($url){
$handle = fopen($url, "rb");
$contents = "";
while (!feof($handle)) $contents.=fread($handle, 10000);
fclose($handle);
return $contents;
}
$phones = array();
for ($i=1; $i<=48; $i++){
$content = getContent("http://www.intimcity.ru/persons.php?type=0&style=0&news=0&updated=0&index=".(($i-1)*50)."&video=N&indoor=");
preg_match_all("/alt\=\"([0-9\(\)\-]{17})\ [^\"]*\"/", $content, $matches, PREG_PATTERN_ORDER);
for ($j=0; $j print($i.": ".count($phones)."
"); flush(); sleep(10);
}


Не 2-3 стр. в секунду, а 2-3 анкеты в секунду. Я же написал, что страница пишется в буфер и потом в офф-лайне с нее снимаются телефоны.

Мы о разных телефонах говорим. У вас в самом деле 2500 тел. Но уникальных, т.е. тел., не имеющих дублей, я нашел не более 390.
Вы как уникальные тел. определяли? В вашем скрипте нет обработки на дубли. Добавьте что-нибудь типа

$phones.sort();
var k=0; while(k < $phones.length-1) {if ($phones[k] == $phones[k+1]) {$phones.splice(k+1,1);} else {k++;}}

тогда и поговорим об "уникальности".

Программа не моя, написанная кем-то под заказ. Использует какой-то плагин под FireFox, работает визуально - то есть непосредственно в браузере открывается страница и подряд снимаются анкеты, потом следующая страница, иимитируя действия человека. Потом обработка, в ходе которой дубли удаляются как раз строчкой, которую я вам послал.