Старые - это которые по старому адресу лежат, или старые, которые не обновляются?
OZON.ru: C 1 ноября 2012 года по техническим причинам не происходят обновления XML(YML)-каталогов OZON.ru. Специалисты компании в настоящий момент занимаются решением проблемы.
Рекомендуем использовать старые XML-каталоги OZON.ru до устранения неполадок. О возобновлении работы каталогов мы сообщим дополнительно.
mihanru: Вероятно, причина в этом. Насколько я знаю, данный парсер больше не обновляется и не поддерживается. Так что скорее всего надо "допиливать" самому.
Все поддерживается, просто Озон обновленные версии к себе не заливает.
---------- Добавлено 22.05.2012 в 16:49 ----------
esergey: Интересная тема. Надо проверить действительно ли он так быстро парсит.
Я не догнал - парсер платный или в данный момент бесплатный?
Если он с такой скоростью парсит я бы баков 30 готов был бы заплатить за скрипт.
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 они не используются. Там вообще нет ничего, кроме ссылок.
Houston: Спасибо. Только вот вопросик... на странице http://stasdavydov.com/ozonru-parser/ лежит все таже версия 1.15. Причем сравнил файлы - они такие же, как и до внесения вами исправлений. Может я где-то не на той странице смотрю или вы выкладываете версии, когда накопится какое-то значимое количество исправлний?
Если сделать
echo ($browser->content);
выводися абра-дабабра всякая. Причем это явно не CP1251 и не UTF-8. И, как следствие, regexp не может ничего найти...
Попробовал сам понять в чем дело, но возможно, не хватает знаний.
Старые - это которые по старому адресу лежат, или старые, которые не обновляются?
C 1 ноября 2012 года по техническим причинам не происходят обновления XML(YML)-каталогов OZON.ru. Специалисты компании в настоящий момент занимаются решением проблемы.
Рекомендуем использовать старые XML-каталоги OZON.ru до устранения неполадок. О возобновлении работы каталогов мы сообщим дополнительно.
Благодарим за понимание.
OZON.ru
Вероятно, причина в этом. Насколько я знаю, данный парсер больше не обновляется и не поддерживается. Так что скорее всего надо "допиливать" самому.
Все поддерживается, просто Озон обновленные версии к себе не заливает.
Вот тут можно скачать: http://ozon2.ru/parser/
А не работало, скорее всего, потому, что не было третьего уровня для XML-каталога - тоже столкнулся с этой проблемой.
Обновления я выкладываю по адресу: http://ozon2.ru/parser/
Озон не всегда оперативно реагирует на выход новой версии.
Напиши поподробнее что использует твой парсер. Какие модули и т.д. Может скриншоты сделаеш.
Никаких модулей не использует. Он самодостаточен.
Представляет собой запускаемый файл (можно скомпилировать под любую ОС).
---------- Добавлено 22.05.2012 в 16:44 ----------
Напиши поподробнее что использует твой парсер. Какие модули и т.д. Может скриншоты сделаеш.
Скриншоты чего?
Вот есть лог работы парсера внутри окружения, которое скачивает XML, а потом грузит результат работы парсера в базу: http://ozon2.ru/local_uploader.log2012-05-22.log.
Ключевая информация по скорости в строчках вида
Ну и общее время тоже можно посмотреть.
---------- Добавлено 22.05.2012 в 16:49 ----------
Интересная тема. Надо проверить действительно ли он так быстро парсит.
Я не догнал - парсер платный или в данный момент бесплатный?
Если он с такой скоростью парсит я бы баков 30 готов был бы заплатить за скрипт.
Как вы хотите скорость проверить?
Вот есть, например, лог его работы на моем сайте: http://ozon2.ru/local_uploader.log2012-05-22.log.
Одна из самых долгих операций парсинга:
Парсер платный. Я его не продаю пока, но изучаю спрос.
Есть парсер бесплатный: http://ozon2.ru/parser/.
---------- Добавлено 22.05.2012 в 16:49 ----------
а какие модули используются?
Никакие.
Парсер самодостаточен.
Исправил, спасибо! :)
офф:
http://ozon2.ru/about/
О проекте
Мы очень любим инЕтернет-магазин Озон.ру
Скорее всего, да, т.к. книг очень много стало - один print.xml 1.4 Гига в распакованном виде занимает.
Добрый день.
Второй день xml'ка div_book.xml не полная, в ней присутствуют только категории.
Так теперь всегда будет? :)
До сих пор не работет :-\
Пришлось переключить поиск на собственную базу.
Возможно ли как-то получить только список разделов родительского со всеми вложенными?
(name, cat_id, parent_id)
Не хочется только из-за списков тянуть весь XML с товарами...
P.S. Или, например, по ID раздела запросить его дочерние?
Можно использовать метод из парсера - там есть функция получения разделов первого, второго и третьего уровней.
Возможно вы меня не верно поняли.
Если брать пример web/catalog.php, где для примера выводятся навигаторы - там все понятно. Там кодировка UTF-8.
Но интересует именно "Все каталоги Озон.ру", которые должны открываться на web/index.php.
Если я правильно понимаю, то логика такая:
Идем на сайт http://www.ozon.ru/
Получаем исходный код страницы
Разбираем его по regexp '/<li><a href="\/context\/(?P<links>[^"]+)" title="(?P<title>[^"]+)">/'
Получаем наименование и имя каталога первого уровня.
Далее идем по этим каталогам и получаем 2-ой уровень
Далее 3-й.
Да, так и есть.
Так вот... Когда получаем исходный код для парсинга первого уровня, то он приходит (или где-то внутри обрабатывается) для regexp какой-то странный. Ни UTF-8, ни CP-1251.
Кодировка там большого значения не имеет, потому что парсер вытаскивает только ссылки и ID каталогов.
А как понял $transformer->transform - работает именно с xml-файлами, которые забирает по указанному пути с сайта. То есть не относится к разбиранию исходного кода сайта для отображения списка каталогов.
XML-каталоги скачиваются отдельно. Для отображения web/index.php они не используются. Там вообще нет ничего, кроме ссылок.
Вот, посмотрите: http://stasdavydov.com/ozonru-parser/test/web/index.php.
Спасибо. Только вот вопросик... на странице http://stasdavydov.com/ozonru-parser/ лежит все таже версия 1.15. Причем сравнил файлы - они такие же, как и до внесения вами исправлений. Может я где-то не на той странице смотрю или вы выкладываете версии, когда накопится какое-то значимое количество исправлний?
Новой версии не было.
Помогите разобраться.
Есть парсер 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'));
Внес исправление в файлы дистрибутива. Спасибо за информацию.