Парсер Яндекс.Каталога парсит до 65 страниц и останавливается. Кто знает как лечить?

12
Ajiotaj
На сайте с 01.12.2006
Offline
150
1298

На форуме был найден скрипт парсера Яндекс.Каталога. Входные данные - раздел каталога. Выходные - список урлов.

Скрипт работает отлично, единственное что парсит только 65 страниц и останавливается.

Кто знает как это полечить?

Пример работы скрипта http://khurtsiya.com/yaca/

B
На сайте с 23.10.2006
Offline
170
#1

может по таймауту отваливается?

PS.

Дайте линк на топик со скриптом

Ajiotaj
На сайте с 01.12.2006
Offline
150
#2

bimcom, дело в том, что если посмотреть работу скрипта то он сразу указывает сколько будет пропарсено страниц и это число всегда 65. То есть пишет так

Страница #1/65 файла files/Business_Marketing_and_Advertising_Advertizing_geo_Russia.txt - Сохранена...
Страница #2/65 файла files/Business_Marketing_and_Advertising_Advertizing_geo_Russia.txt - Сохранена...
Страница #3/65 файла files/Business_Marketing_and_Advertising_Advertizing_geo_Russia.txt - Сохранена...
Страница #4/65 файла files/Business_Marketing_and_Advertising_Advertizing_geo_Russia.txt - Сохранена...
Страница #5/65 файла files/Business_Marketing_and_Advertising_Advertizing_geo_Russia.txt - Сохранена...

Соответственно заранее определено количество страниц.

Вот ссылка на топик: /ru/forum/184296

Качал из последнего поста. В теме отвечать уже нельзя, т.к. она слишком старая.

B
На сайте с 23.10.2006
Offline
170
#3
Ajiotaj:
bimcom, дело в том, что если посмотреть работу скрипта то он сразу указывает сколько будет пропарсено страниц и это число всегда 65. То есть пишет так
Соответственно заранее определено количество страниц.

ну незнаю - вот посматрите - определил больше 65

Вообщето все правильно:

Ваш раздел:

http://yaca.yandex.ru/yca/cat/Business/Marketing_and_Advertising/Advertizing/geo/Russia/

Сайтов в рубрике: 1201

сайтов на странице 20

1201/20=60,5

там наверное ошибка в округление - должно быть 60,5, а не 65 страниц или ещё какойто параметр внедрен.

png parser.png
Ajiotaj
На сайте с 01.12.2006
Offline
150
#4

Да это я дезинформировал, бывает и больше 65.

А вот другие примеры:

http://yaca.yandex.ru/yca/tungrp/cat/Business/Construction/ 7943

http://yaca.yandex.ru/yca/tungrp/cat/Business/Production/ 13302

а при парсинге у обоих выводит 79 страниц.

E
На сайте с 26.02.2009
Offline
6
#5

Посмотрел исходники. Парсит страницу не http://yaca.yandex.ru/yca/cat/Business/Realty,

а http://yaca.yandex.ru/yca/ungrp/cat/Business/Realty/ .

Там "Сайтов в рубрике: 1571". 1571/20 =78,55. Округляем - получаем 79.

Хотел исправить, но не успеваю. Пора бежать.

Ajiotaj
На сайте с 01.12.2006
Offline
150
#6

exvion, посмотрел обе ссылки - по обеим 1571 сайт. В чем разница не ясно.

E
На сайте с 26.02.2009
Offline
6
#7

Правильно говорят, спешка до добра не доводит. Действительно по обеим ссылкам результат совпадает. Что бы не гадать, замени функцию Iteration() в файле class.Grabber.php приведенной ниже и посмотри результат.

function Iteration()

{

$this->Client->Fetch(
$this->Base . $this->URL . ($this->Counter ? '/'.$this->Counter.'.html' : '/')
);

if ($this->Client->Result && $this->Expression)
{

_echo($this->Client->Result);

// set maximum pages
if ($this->Maximum == 1 && preg_match(YACA_SITESCNT_EXPRESSION, $this->Client->Result, $match))
$this->Maximum = ceil($match[1]/20);

if (preg_match_all($this->Expression, $this->Client->Result, $matches, PREG_PATTERN_ORDER))
$this->SaveContent($matches[1]);
}

// sleep on 1 second
sleep(1);
$this->Counter++;
}
Ajiotaj
На сайте с 01.12.2006
Offline
150
#8

exvion, заменил... Получилась вообще жесть неимоверная =) http://khurtsiya.com/yaca

E
На сайте с 26.02.2009
Offline
6
#9

Похоже у вас скрипт не завершает работу при закрытии браузера.

Запустил скрипт указав Business/Realty. Остановил скрипт. Запустил с другим параметром

http://yaca.yandex.ru/yca/cat/Business/Marketing_and_Advertising/Advertizing/geo/Russia/

Результат можно посмотреть во вложении. При парсинге раздела Реклама, загружается раздел Недвижимость.

jpg yaca.jpg
devaka
На сайте с 27.11.2007
Offline
115
#10

Видимо, Яндекс поменял что-то в структуре хтмл и кол-во страниц неверно определяется. Я исправлю свой баг и выложу новую версию там же завтра-послезавтра: http://devaka.ru/articles/yaca-parser

Новичкам о плане раскрутки (/ru/forum/365295) | Продвижение статьями (/ru/forum/357989) | Ошибки SEO (/ru/forum/354029) | © Devaka.ru
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий