Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML в озоновской партнерке, Использование HTTP GET запроса 
:(
    Опции темы
AlexVern
Дата 17.7.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Всем здорово!
Люди, человеки, помогите кто чем может, оч надо!
Итак суть проблемы такова. 
Исходные данные:
Имеется партнерка от озона. Необходимо дернуть от туда xml файл по конечной ветке по запросу HTTP GET.
Всю голову себе уже изломал но так и не могу понять как используется этот тип запросов. Интересует именно практическая сторона ипользования, потому что теории уже начитался по самые уши!
Сервис находиться по адресу: http://www.ozon.ru/webservices/OzonWebSvc.asmx?op=ItemLst
CatalogID         1075358
PageNumber      1
PageItemCount   10
SortName           AUTHOR

HTTP request

GET /webservices/OzonWebSvc.asmx/ItemLst?CatalogID=string&PageNumber=string&PageItemCount=string&SortName=string HTTP/1.1
Host: www.ozon.ru

HTTP response

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://www.ozon.ru/webservices/">
<schema xmlns="http://www.w3.org/2001/XMLSchema">schema</schema>xml</DataSet>


что со всем эти делать??

Это сообщение отредактировал(а) AlexVern - 17.7.2008, 11:36
PM MAIL   Вверх
jsa
Дата 17.7.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



из командной строки:
Код

-sh-3.1$ telnet www.ozon.ru 80 | tee ozon.xml
Trying 194.186.179.160...
Connected to www.ozon.ru.
Escape character is '^]'.
GET /webservices/OzonWebSvc.asmx/ItemLst?CatalogID=1075358&PageNumber=1&PageItemCount=10&SortName=AUTHOR HTTP/1.1
Host: www.ozon.ru

HTTP/1.1 200 OK
Date: Thu, 17 Jul 2008 09:03:17 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 3646

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://www.ozon.ru/webservices/">
  <xs:schema id="ItemList" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="ItemList" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Item">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:decimal" minOccurs="0" />
                <xs:element name="Name" type="xs:string" minOccurs="0" />
                <xs:element name="OtherName" type="xs:string" minOccurs="0" />
                <xs:element name="Author" type="xs:string" minOccurs="0" />
                <xs:element name="Year" type="xs:int" minOccurs="0" />
                <xs:element name="Annotation" type="xs:string" minOccurs="0" />
                <xs:element name="ImagePath" type="xs:string" minOccurs="0" />
                <xs:element name="HtmlDetailPath" type="xs:string" minOccurs="0" />
                <xs:element name="ItemType" type="xs:string" minOccurs="0" />
                <xs:element name="Date" type="xs:dateTime" minOccurs="0" />
                <xs:element name="Price" type="xs:decimal" minOccurs="0" />
                <xs:element name="Availability" type="xs:string" minOccurs="0" />
                <xs:element name="Complekt" type="xs:int" minOccurs="0" />
                <xs:element name="IsNew" type="xs:unsignedByte" minOccurs="0" />
                <xs:element name="Manufacturer" type="xs:string" minOccurs="0" />
                <xs:element name="Pages" type="xs:int" minOccurs="0" />
                <xs:element name="ISBNCode" type="xs:string" minOccurs="0" />
                <xs:element name="IsRecommended" type="xs:unsignedByte" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <ItemList xmlns="">
      <Item diffgr:id="Item1" msdata:rowOrder="0">
        <ID>869622</ID>
        <Name>Большой - маленький. Развитие речи. 2-4 года</Name>
        <Author>С. Н. Теплюк</Author>
        <Year>2006</Year>
        <Annotation>Уважаемые взрослые! &lt;br&gt;
Вы радуетесь, отмечая, какие новые слова произнесла ваша кроха, с какой интонацией, в какой ситуации. И в самом деле, если словарный запас ребенка в 1 год - 1 год 6 месяцев составляет в среднем 35-40 слов, то к двум годам он </Annotation>
        <ImagePath>http://www.ozon.ru/multimedia/books_covers/small/1000629127.gif</ImagePath>
        <HtmlDetailPath>http://www.ozon.ru/context/detail/id/869622/</HtmlDetailPath>
        <ItemType>Книгопечатная продукция</ItemType>
        <Date>2007-10-24T00:00:00+04:00</Date>
        <Price>36.0000</Price>
        <Availability>На складе</Availability>
        <Complekt>0</Complekt>
        <IsNew>0</IsNew>
        <Manufacturer>Карапуз</Manufacturer>
        <Pages>16</Pages>
        <ISBNCode>5-8403-0190-6</ISBNCode>
        <IsRecommended>0</IsRecommended>
      </Item>
    </ItemList>
  </diffgr:diffgram>
</DataSet>

Connection closed by foreign host.
-sh-3.1$ cat ozon.xml | grep "<" > ozon.clean.xml


ЗЫЖ там же все написано


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 17.7.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Спасибо за совет, такой xml  я уже получал.... однако если я формирую  около 200 страниц получая таким способом XML, мне постоянно их прийдется обновлять, ну хотя бы раз в месяц. весь вопрос в том как использовать подобные запросы для автоматического обновления даже если с использованием крона?

PM MAIL   Вверх
jsa
Дата 17.7.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



написать скрипт на шеле, на пхп, на перле, да хоть на чем

Добавлено через 35 секунд
в чем проблема?


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 17.7.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



ВОТ в этом и проблема! Проблема в том что в скриптах я не силен. 
Еще такой вопрос, возможно ли использовать подобный запрос на в коде html или php?  что бы когда пользователь заходил на станицу, то этот код сразу бы обновлялся с ozona  и показывал бы наличие товара в той или иной категории?
И если да то как?
Конечно если для этого не прийдется писать большой скрипт, который вы не захотите писать и я не смогу.
PM MAIL   Вверх
jsa
Дата 17.7.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



конечно можно
вот пример 
Код


 $url = "/webservices/OzonWebSvc.asmx/ItemLst?CatalogID=string&PageNumber=string&PageItemCount=string&SortName=AUTHOR"; 

   $fp = fsockopen("www.ozon.ru",80,$errno,$errstr,500);
   if(!$fp){
    return false;
    //die("Error");
   }else{
     fputs($fp,"GET $url HTTP/1.1\r\nHost: www.ozon.ru\r\n\r\n");
     while(!feof($fp)){
      $res .= fgets($fp,1024);
     }
     fclose($fp);
    }
  
  
  file_put_contents('ozon.xml', $fp);



--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 17.7.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Спасибо тебе ВОООООООООООООООООООООТ такое огромное , плюсую в ТОП  smile 
PM MAIL   Вверх
jsa
Дата 17.7.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



это на php, на ошибки не проверял, писал по памяти

Добавлено через 1 минуту и 41 секунду
причем на 5-ом


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 17.7.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Ну то что пятый это нормально  а что значит строка? $res .= fgets($fp,1024);
PM MAIL   Вверх
jsa
Дата 17.7.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



в $res как раз будет информация:
Код

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://www.ozon.ru/webservices/">
  <xs:schema id="ItemList" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="ItemList" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Item">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ID" type="xs:decimal" minOccurs="0" />
                <xs:element name="Name" type=


.= тоже самое что $res = $res . fgets($fp,1024);
символ . означает конкатенацию в php


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 17.7.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



у меня он просто выдает ошибку именно в этой строке, что такое 1024?

Добавлено через 4 минуты и 5 секунд
Warning: file_put_contents(): 2 is not a valid stream resource in /var/www/web60/html/stripeblog/xml.php on line 15


хотя даже уже не там а вот здесь дает ошибку, может мне надо сначала самому создать ozon.xml  а он его просто рерайтить будет, или он его сам на хосте должен создавать?
PM MAIL   Вверх
jsa
Дата 18.7.2008, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



Цитата

file_put_contents — Записать строку в файл

Описание
int file_put_contents ( string $filename, mixed $data [, int $flags [, resource $context]] )

Функция идентична последовательному вызову функций fopen(), fwrite() и fclose(). Возвращаемым функцией значением является количество записанных в файл байтов. 

Параметр flags может принимать значение FILE_USE_INCLUDE_PATH и/или FILE_APPEND. Используйте FILE_USE_INCLUDE_PATH с осторожностью. 


проверь пути к файлу и права 

ЗЫЖ уже оффтоп, тебе в php форум

Добавлено через 1 минуту и 58 секунд
ну и вообще, код скрипта в студию, ты наверняка его изменил

Добавлено через 6 минут и 1 секунду
кстати, я же тебе писал, что скрипт не проверял на ошибки

здесь ошибка
file_put_contents('ozon.xml', $fp);
должно быть 
file_put_contents('ozon.xml', $res);


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
AlexVern
Дата 18.7.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



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

Вообщем если кто нить заинтересуется автоматизацией сбора XML файлов с ozon.ru то есть такой штук:

Код


$arr = array(1076076,1091407); //номера категорий из которых надо получить xml
      foreach ($arr as &$value) {
  
       touch("$value.xml"); 
 //начинаем выдергивать xml
 $url = "/webservices/OzonWebSvc.asmx/ItemLst?CatalogID=$value&PageNumber=1&PageItemCount=10&SortName=AUTHOR"; 
   $fp = fsockopen('www.ozon.ru',80,$errno,$errstr,500);
   
   if(!$fp){
    return false;
    //die("Error");
   }else{
     fputs($fp,"GET $url HTTP/1.1\r\nHost: www.ozon.ru\r\n\r\n");
     while(!feof($fp)){
      $res .= fgets($fp,1024);
     }
     fclose($fp);
    }
}



Но я пошел значительно дальше и как бывает из за отсутствия опыта моя мысль пришла в тупик. Практически дошел до автоматического создания(точнее сюда я дошел) страниц с заданным дизайном и наполнением их контентом(сюда не дошел). 


А теперь есть совсем не большой вопрос: Что мне делать с ЭТИМ?

Код

<?xml version="1.0" encoding="utf-8"?>

<DataSet xmlns="http://www.ozon.ru/webservices/">

  <xs:schema id="ItemList" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

    <xs:element name="ItemList" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">

      <xs:complexType>

        <xs:choice minOccurs="0" maxOccurs="unbounded">

          <xs:element name="Item">

            <xs:complexType>

              <xs:sequence>

                <xs:element name="ID" type="xs:decimal" minOccurs="0" />

                <xs:element name="Name" type="xs:string" minOccurs="0" />

                <xs:element name="OtherName" type="xs:string" minOccurs="0" />

                <xs:element name="Author" type="xs:string" minOccurs="0" />

                <xs:element name="Year" type="xs:int" minOccurs="0" />

                <xs:element name="Annotation" type="xs:string" minOccurs="0" />

                <xs:element name="ImagePath" type="xs:string" minOccurs="0" />

                <xs:element name="HtmlDetailPath" type="xs:string" minOccurs="0" />

                <xs:element name="ItemType" type="xs:string" minOccurs="0" />

                <xs:element name="Date" type="xs:dateTime" minOccurs="0" />

                <xs:element name="Price" type="xs:decimal" minOccurs="0" />

                <xs:element name="Availability" type="xs:string" minOccurs="0" />

                <xs:element name="Complekt" type="xs:int" minOccurs="0" />

                <xs:element name="IsNew" type="xs:unsignedByte" minOccurs="0" />

                <xs:element name="Manufacturer" type="xs:string" minOccurs="0" />

                <xs:element name="Pages" type="xs:int" minOccurs="0" />

                <xs:element name="ISBNCode" type="xs:string" minOccurs="0" />

                <xs:element name="IsRecommended" type="xs:unsignedByte" minOccurs="0" />

              </xs:sequence>

            </xs:complexType>

          </xs:element>

        </xs:choice>

      </xs:complexType>

    </xs:element>

  </xs:schema>

  <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">

    <ItemList xmlns="">

      <Item diffgr:id="Item1" msdata:rowOrder="0">

        <ID>150742</ID>

        <Name>Атлас. Экономическая и социальная география мира. 10 класс (с комплектом контурных карт)</Name>

        <Year>2007</Year>

        <Annotation>Учебное пособие к программе по географии для средних общеобразовательных учреждений. С контурными картами.</Annotation>

        <ImagePath>http://www.ozon.ru/multimedia/books_covers/small/mm778_26.gif</ImagePath>

        <HtmlDetailPath>http://www.ozon.ru/context/detail/id/150742/</HtmlDetailPath>

        <ItemType>Книгопечатная продукция</ItemType>

        <Date>2008-04-29T00:00:00+04:00</Date>

        <Price>38.0000</Price>

        <Availability>На складе</Availability>

        <Complekt>0</Complekt>

        <IsNew>0</IsNew>

        <Manufacturer>Роскартография</Manufacturer>

        <Pages>74</Pages>

        <ISBNCode xml:space="preserve"> </ISBNCode>

        <IsRecommended>0</IsRecommended>

      </Item>


точнее как мне это представить в читаемом для пользователя виде? и что бы ссылка на картинку грузила картинку а ссылка на страницу с книгой была под словом "купить"


Это сообщение отредактировал(а) AlexVern - 18.7.2008, 21:56
PM MAIL   Вверх
jsa
Дата 21.7.2008, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 3
Всего: 20



теперь надо на эти данные наложить шаблон xslt, чтобы получить html, 
но для этого тебе понадобиться реально заняться изучением xslt


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.