Стас Давыдов

Рейтинг
28
Регистрация
21.03.2009

Старые - это которые по старому адресу лежат, или старые, которые не обновляются?

OZON.ru:
C 1 ноября 2012 года по техническим причинам не происходят обновления XML(YML)-каталогов OZON.ru. Специалисты компании в настоящий момент занимаются решением проблемы.

Рекомендуем использовать старые XML-каталоги OZON.ru до устранения неполадок. О возобновлении работы каталогов мы сообщим дополнительно.

Благодарим за понимание.

OZON.ru
mihanru:
Вероятно, причина в этом. Насколько я знаю, данный парсер больше не обновляется и не поддерживается. Так что скорее всего надо "допиливать" самому.

Все поддерживается, просто Озон обновленные версии к себе не заливает.

Вот тут можно скачать: http://ozon2.ru/parser/

А не работало, скорее всего, потому, что не было третьего уровня для XML-каталога - тоже столкнулся с этой проблемой.

Обновления я выкладываю по адресу: http://ozon2.ru/parser/

Озон не всегда оперативно реагирует на выход новой версии.

AlexanderI:
Напиши поподробнее что использует твой парсер. Какие модули и т.д. Может скриншоты сделаеш.

Никаких модулей не использует. Он самодостаточен.

Представляет собой запускаемый файл (можно скомпилировать под любую ОС).

---------- Добавлено 22.05.2012 в 16:44 ----------

AlexanderI:
Напиши поподробнее что использует твой парсер. Какие модули и т.д. Может скриншоты сделаеш.

Скриншоты чего?

Вот есть лог работы парсера внутри окружения, которое скачивает XML, а потом грузит результат работы парсера в базу: http://ozon2.ru/local_uploader.log2012-05-22.log.

Ключевая информация по скорости в строчках вида

2012-05-22T07:14:43+04:00 Transform /var/www/tmp/toy.xml ==> /var/www/tmp/item.txt, /var/www/tmp/tag.txt, /var/www/tmp/item_tag.txt

Transformed: 7427 items, 408 tags, 18128 item_tag links. 90 msec.

Ну и общее время тоже можно посмотреть.

---------- Добавлено 22.05.2012 в 16:49 ----------

esergey:
Интересная тема. Надо проверить действительно ли он так быстро парсит.
Я не догнал - парсер платный или в данный момент бесплатный?
Если он с такой скоростью парсит я бы баков 30 готов был бы заплатить за скрипт.

Как вы хотите скорость проверить?

Вот есть, например, лог его работы на моем сайте: http://ozon2.ru/local_uploader.log2012-05-22.log.

Одна из самых долгих операций парсинга:

2012-05-22T07:10:28+04:00 /var/www/tmp/print.xml extracted (2167220929 bytes)

2012-05-22T07:11:33+04:00 Transform /var/www/tmp/print.xml ==> /var/www/tmp/item.txt, /var/www/tmp/tag.txt, /var/www/tmp/item_tag.txt
Transformed: 1513811 items, 51 tags, 1513825 item_tag links. 35370 msec.

Парсер платный. Я его не продаю пока, но изучаю спрос.

Есть парсер бесплатный: http://ozon2.ru/parser/.

---------- Добавлено 22.05.2012 в 16:49 ----------

la2portal:
а какие модули используются?

Никакие.

Парсер самодостаточен.

Исправил, спасибо! :)

4996699:
офф:
http://ozon2.ru/about/
О проекте

Мы очень любим инЕтернет-магазин Озон.ру

Скорее всего, да, т.к. книг очень много стало - один print.xml 1.4 Гига в распакованном виде занимает.

esineokov:
Добрый день.

Второй день xml'ка div_book.xml не полная, в ней присутствуют только категории.
Так теперь всегда будет? :)

До сих пор не работет :-\

Пришлось переключить поиск на собственную базу.

Error202:
Возможно ли как-то получить только список разделов родительского со всеми вложенными?
(name, cat_id, parent_id)

Не хочется только из-за списков тянуть весь XML с товарами...

P.S. Или, например, по ID раздела запросить его дочерние?

Можно использовать метод из парсера - там есть функция получения разделов первого, второго и третьего уровней.

Houston:
Возможно вы меня не верно поняли.
Если брать пример web/catalog.php, где для примера выводятся навигаторы - там все понятно. Там кодировка UTF-8.
Но интересует именно "Все каталоги Озон.ру", которые должны открываться на web/index.php.

Если я правильно понимаю, то логика такая:
Идем на сайт http://www.ozon.ru/
Получаем исходный код страницы
Разбираем его по regexp '/<li><a href="\/context\/(?P<links>[^"]+)" title="(?P<title>[^"]+)">/'
Получаем наименование и имя каталога первого уровня.
Далее идем по этим каталогам и получаем 2-ой уровень
Далее 3-й.

Да, так и есть.

Houston:
Так вот... Когда получаем исходный код для парсинга первого уровня, то он приходит (или где-то внутри обрабатывается) для regexp какой-то странный. Ни UTF-8, ни CP-1251.

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

Houston:
А как понял $transformer->transform - работает именно с xml-файлами, которые забирает по указанному пути с сайта. То есть не относится к разбиранию исходного кода сайта для отображения списка каталогов.

XML-каталоги скачиваются отдельно. Для отображения web/index.php они не используются. Там вообще нет ничего, кроме ссылок.

Вот, посмотрите: http://stasdavydov.com/ozonru-parser/test/web/index.php.

Houston:
Спасибо. Только вот вопросик... на странице http://stasdavydov.com/ozonru-parser/ лежит все таже версия 1.15. Причем сравнил файлы - они такие же, как и до внесения вами исправлений. Может я где-то не на той странице смотрю или вы выкладываете версии, когда накопится какое-то значимое количество исправлний?

Новой версии не было.

Houston:
Помогите разобраться.

Есть парсер 1.15 от Стас Давыдов (http://stasdavydov.com/ozonru-parser/).
Установлен на Windows Server 2003, PHP 5.2.14.
...

Если сделать
echo ($browser->content);
выводися абра-дабабра всякая. Причем это явно не CP1251 и не UTF-8. И, как следствие, regexp не может ничего найти...

Попробовал сам понять в чем дело, но возможно, не хватает знаний.

Помогите... как получить весь список ?

Заранее благодарен.

Привет!

Чтобы все заработало, нужно указать кодировку:

$transformer->transform($catalog,

array('PAGENUM'=>$page, 'PARTNER'=>$PARTNER_ID, 'URL_PARAMS'=>'path='.urlencode($path),

'PATH'=>urlencode($path), 'encoding' => 'windows-1251'));

Внес исправление в файлы дистрибутива. Спасибо за информацию.

12
Всего: 20