Вернуться   Форум об интернет-маркетинге > > >
 
 
Опции темы
Старый 31.08.2010, 15:19   #11
Ispanez1
Студент
 
Регистрация: 04.07.2009
Сообщений: 25
Репутация: 10

По умолчанию Ответ: парсер

Попробовал поставить парсер.
В нем есть критическая ошибка в ссылке с партнерским ID!

Ссылка на описание товара в Озоне такого вида:
http://www.ozon.ru/context/detail/id/1720357?partner=[YOUR-PARTNER-ID]
А должно быть так:
http://www.ozon.ru/context/detail/id/1720357/?partner=[YOUR-PARTNER-ID]

Конечно все партнерские переходы по такой ссылке не учитываются!

Исправил так:

В файле /src/xsl/core.xsl

код

[HTML]<!-- URL товара -->
<xsl:template match="offer/url">
<xsl:text>http://www.ozon.ru/context/detail/id/</xsl:text>
<xsl:value-of select="parent:ffer/@id"/>
<xsl:text>?partner=</xsl:text>
<xsl:value-of select="$PARTNER"/>
</xsl:template>[/HTML]

заменил на

[HTML]<!-- URL товара -->
<xsl:template match="offer/url">
<xsl:text>http://www.ozon.ru/context/detail/id/</xsl:text>
<xsl:value-of select="parent:ffer/@id"/>
<xsl:text>/?partner=</xsl:text>
<xsl:value-of select="$PARTNER"/>
</xsl:template>[/HTML]

Ссылка на корзину с партнерским ID верная.

Странно что никто не писал раньше. Никто его вообще не ставил что ли?
Ispanez1 вне форума  

Реклама
Старый 01.09.2010, 13:18   #12
Alipapa
Советский инженер
 
Аватар для Alipapa
 
Регистрация: 01.02.2008
Сообщений: 1,840
Репутация: 192595
Социальные сети

По умолчанию Ответ: парсер

Да мы как-то по-старинке всё. В базу загоняем, а там уже по свом шаблонам, без xsl-ей, слишком оно мудрено.
Alipapa вне форума  
Старый 01.09.2010, 17:37   #13
Стас Давыдов
Студент
 
Регистрация: 21.03.2009
Сообщений: 22
Репутация: 857
Отправить сообщение для Стас Давыдов с помощью ICQ Отправить сообщение для Стас Давыдов с помощью Yahoo Отправить сообщение для Стас Давыдов с помощью Skype™
Социальные сети

По умолчанию Ответ: парсер

Цитата:
Сообщение от Ispanez1 Посмотреть сообщение
Попробовал поставить парсер.
В нем есть критическая ошибка в ссылке с партнерским ID!

Странно что никто не писал раньше. Никто его вообще не ставил что ли?
Спасибо, что заметили!
Исправил, в следующей версии 1.11 войдет в дистрибутив.
Стас Давыдов вне форума  
Старый 30.11.2010, 06:13   #14
artbdk
Студент
 
Регистрация: 18.06.2010
Сообщений: 10
Репутация: 10

ТопикСтартер Ответ: парсер

Цитата:
Сообщение от OZON.ru Посмотреть сообщение
В XML не выводятся корректно некоторые подкатегории подкаталога, из-за чего парсер может не все выводить. Можно посоветовать использовать каталог конечной ветки, например, для детективов, ветки ID 1093883 можно вывести каталог конечного уровня «Зарубежный детектив». В парсере необходимо прописать такие строки:

$catalog = new OzonCatalog('audiobook_catalog/1093883');
'categoryId' => 1072682, // Зарубежные детективы

С другими ID каталога аналогично.
Ок, получилось!


Есть несколько вопросов

1. Как вывести http://www.ozon.ru/context/audiobook_new/

2. как бы раздел Аудиокниги структурировать по темам книг? Т.е фантастика и детективы, история - это отдельные разделы, а другие жанры: приключения, юмор, любовные романы, ужасы и т.п.

3. раздел "Цифровые аудиокниги" http://www.ozon.ru/context/eabook_catalog/ уже доступен в xml?
Для меня это очень актуально.

Последний раз редактировалось artbdk; 30.11.2010 в 08:29..
artbdk вне форума  
Старый 30.11.2010, 10:09   #15
OZON.ru
Партнерская программа
 
Регистрация: 12.03.2008
Сообщений: 870
Репутация: 13415

По умолчанию Ответ: парсер

artbdk, цифровые товары для скачивания НЕ участвуют в Партнерской программе. По остальному постараемся чуть позже ответить.
OZON.ru вне форума  
Старый 25.02.2011, 07:45   #16
artbdk
Студент
 
Регистрация: 18.06.2010
Сообщений: 10
Репутация: 10

ТопикСтартер Re: парсер

Испытываю проблемы с получением xml файла. К примеру мне надо получить xml файл раздела "Туристические рюкзаки", в описании сказано, что формат должен быть http://www.ozon.ru/multimedia/yml/pa...алога.xml
Какое "имя каталога" мне подставлять?
Для 3 уровня раздела книги нужно подставить book_catalog/12351.xml, а для других разделов?
Пробую http://www.ozon.ru/multimedia/yml/pa...sm/1095931.xml не дает.
Где можно узнать имя каталога для разных разделов?

Я заметил, что на странице товара Вы сделали кнопку "Партнерская ссылка на эту страницу" ну и добавьте к этой информации поле содержащие путь к xml каталогу раздела.
artbdk вне форума  
Старый 26.02.2011, 14:23   #17
Houston
Абитуриент
 
Регистрация: 04.03.2008
Сообщений: 2
Репутация: 10

По умолчанию Re: парсер

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

Есть парсер 1.15 от Стас Давыдов (http://stasdavydov.com/ozonru-parser/).
Установлен на Windows Server 2003, PHP 5.2.14.
Все тесты парсера на совместимость (bin\check.php) проходят удачно (все с +).

Однако, при попытке получить весь список (web\index.php) разделов выдается ошибка:

Fatal error: Uncaught exception 'OzonException' with message 'Cannot parse catalog links' in ПУТЬ\src\Ozon.php:49 Stack trace: #0 ПУТЬ\web\index.php(11): Ozon::getCatalogList(3) #1 {main} thrown in ПУТЬ\src\Ozon.php on line 49

Как я понял, это связано с разбиранием строки по regexp
if(preg_match_all('/<li><a href="\/context\/(?P<links>[^"]+)" title="(?P<title>[^"]+)">/',
$browser->content, $matches)) {
в файле src\Ozon.php (строка 43). То есть к нему прходит не верный $browser->content.
Если сделать
echo ($browser->content);
выводися абра-дабабра всякая. Причем это явно не CP1251 и не UTF-8. И, как следствие, regexp не может ничего найти...

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

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

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

Последний раз редактировалось Houston; 26.02.2011 в 14:54..
Houston вне форума  
Старый 26.02.2011, 17:32   #18
Стас Давыдов
Студент
 
Регистрация: 21.03.2009
Сообщений: 22
Репутация: 857
Отправить сообщение для Стас Давыдов с помощью ICQ Отправить сообщение для Стас Давыдов с помощью Yahoo Отправить сообщение для Стас Давыдов с помощью Skype™
Социальные сети

По умолчанию Re: парсер

Цитата:
Сообщение от 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'));


Внес исправление в файлы дистрибутива. Спасибо за информацию.
Стас Давыдов вне форума  
Старый 27.02.2011, 09:37   #19
Houston
Абитуриент
 
Регистрация: 04.03.2008
Сообщений: 2
Репутация: 10

По умолчанию Re: парсер

Цитата:
Сообщение от Стас Давыдов Посмотреть сообщение
Чтобы все заработало, нужно указать кодировку:

$transformer->transform($catalog,
array('PAGENUM'=>$page, 'PARTNER'=>$PARTNER_ID, 'URL_PARAMS'=>'path='.urlencode($path),
'PATH'=>urlencode($path), 'encoding' => 'windows-1251'));
Возможно вы меня не верно поняли.
Если брать пример 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.

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

Если я не прав - тогда подскажите, где необходимо изменить эту строчку.
Цитата:
Сообщение от Стас Давыдов Посмотреть сообщение
Внес исправление в файлы дистрибутива. Спасибо за информацию.
Спасибо. Только вот вопросик... на странице http://stasdavydov.com/ozonru-parser/ лежит все таже версия 1.15. Причем сравнил файлы - они такие же, как и до внесения вами исправлений. Может я где-то не на той странице смотрю или вы выкладываете версии, когда накопится какое-то значимое количество исправлний?
Houston вне форума  
Старый 27.02.2011, 17:28   #20
Стас Давыдов
Студент
 
Регистрация: 21.03.2009
Сообщений: 22
Репутация: 857
Отправить сообщение для Стас Давыдов с помощью ICQ Отправить сообщение для Стас Давыдов с помощью Yahoo Отправить сообщение для Стас Давыдов с помощью Skype™
Социальные сети

По умолчанию Re: парсер

Цитата:
Сообщение от 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. Причем сравнил файлы - они такие же, как и до внесения вами исправлений. Может я где-то не на той странице смотрю или вы выкладываете версии, когда накопится какое-то значимое количество исправлний?
Новой версии не было.
Стас Давыдов вне форума  
 



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны