Jump to content
  • 0

API новой почты


3d_max_9
 Share

Question

Занимался кто то API Новой почты? Интересует именно адреса отделений для выбранного города. Для API надо ключ. Заказчик не хочет идти к ним и заключать договор(что бы получить ключ). Есть возможность как то обойти  API без ключа и вытянуть адреса отделений?

Думал еще парсить .xls с адресами но что то не могу найти норм статьи с описанием, как это можно сделать.

Может кто поделится опытом как лучше сделать или ссылкой?

Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 0

А ты xls в csv конвертни. Или тебе нужно каждый раз новую парсить?

Да там вариант с xls отпадает. Очень много надо править, более 3к строк. Увы надо только ключ для api ( Edited by 3d_max_9
Link to comment
Share on other sites

  • 0

Если ключ для API платный никто вам просто так его не даст, а взломом тут не занимаются. Парсите xls файл.

Ещё можно разобрать эту страницу http://novaposhta.ua/print/warenhouses на ней все отделения.

Edited by wwt
Link to comment
Share on other sites

  • 0

Если ключ для API платный никто вам просто так его не даст, а взломом тут не занимаются. Парсите xls файл.

Ещё можно разобрать эту страницу http://novaposhta.ua/print/warenhouses на ней все отделения.

ключ не платны! Политика новой почты просто не очень. Если пользуешься ихней API то в программе лояльности не можешь принимать участие. Вот теперь надо думать как обойти эту штуку )

думал парсить вот эту страницу http://novaposhta.ua/print/bru nchoffices 

 

но головняка много( для достижения такого результата

 

b574334b5208e2b7442a3f97640208f1.jpg

 

(

 

Edited by 3d_max_9
Link to comment
Share on other sites

  • 0

 

Если ключ для API платный никто вам просто так его не даст, а взломом тут не занимаются. Парсите xls файл.

Ещё можно разобрать эту страницу http://novaposhta.ua/print/warenhouses на ней все отделения.

ключ не платны! Политика новой почты просто не очень. Если пользуешься ихней API то в программе лояльности не можешь принимать участие. Вот теперь надо думать как обойти эту штуку )

думал парсить вот эту страницу http://novaposhta.ua/print/bru nchoffices 

 

но головняка много( для достижения такого результата

 

b574334b5208e2b7442a3f97640208f1.jpg

 

(

 

 

Всё же что вам мешает открыть xls в экселе и пересохранить файл в csv ?

http://pastebin.com/raw.php?i=4C2BUA7j

 

сохраните себе. Каждая строка это запись об одной точке, столбцы разделены знаком ;

Link to comment
Share on other sites

  • 0

Всё же что вам мешает открыть xls в экселе и пересохранить файл в csv ?

 http://pastebin.com/raw.php?i=4C2BUA7j

 

сохраните себе. Каждая строка это запись об одной точке, столбцы разделены знаком ;

 

Только то что с эти еще не приходилось работать да и все ровно придется очень много руками править. Хотя может я и ошибаюсь, почитаю об этом csv. ) 

 

пс(спустя 10 мин)

все же править придется много (

Edited by 3d_max_9
Link to comment
Share on other sites

  • 0

Всё же что вам мешает открыть xls в экселе и пересохранить файл в csv ?

 http://pastebin.com/raw.php?i=4C2BUA7j

 

сохраните себе. Каждая строка это запись об одной точке, столбцы разделены знаком ;

Только то что с эти еще не приходилось работать да и все ровно придется очень много руками править. Хотя может я и ошибаюсь, почитаю об этом csv. )
csv это текстовый формат где одна строка это отдельная запись, столбцы разделены разделителем точкой с запятой тоесть вот так:

 

значение 1 ; значение 2 ; значение 3 ; значение 4

значение 1 ; значение 2 ; значение 3 ; значение 4

значение 1 ; значение 2 ; значение 3 ; значение 4

значение 1 ; значение 2 ; значение 3 ; значение 4

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

 

Сохраните себе данный файл, потом разбираете его в php

 

<?php$arr = file(url);//считываем файл в массив построчно где 1 строка = 1 элеимент массива// Потом перебираем все элементы массива $out = array();foreach($arr as $k => $v){// разбираем кажду строку по знаку разделителю в массив и добавляем все в многомерный массив$out[$k] = explode(';', $v);}//выводимprint_r($out);
Link to comment
Share on other sites

  • 0

Если ресурсы сервера позволяют - можно конвертировать и сервером, правда - если оперативки мало - то не очень. для разбора xls - подойдет PHPexel, правда лпять же - память эта штука сильно жрет, но для не больших файлов сойдет.

 

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

Есть программки, которые в любой знак ячейки и строки закрывают

 

Если вам автоматизация не нужна - не парьтесь. Выдерните лучше XML, с его разбором хлопот меньше. Но опять же если файл большой - больше 3 мегабайт - памяти может не хватить, парсите его по частям 


 

 

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

 

Столкнулся с тем, что в ячейке могут переносы быть, тогда эта разметка превращается в кашу ((( 

Edited by Николя223
Link to comment
Share on other sites

  • 0
Столкнулся с тем, что в ячейке могут переносы быть, тогда эта разметка превращается в кашу (((

Это ошибка , Excel конвертит без таких косяков )) Ниразу таких проблем не было. Но в любом случае, проще один раз такой файл распарсить и пихнуть в базу.

Link to comment
Share on other sites

  • 0

Не... Вот ещё раз попробовал

 

 

Артикул;Описание;РРЦ, руб.;Наличие;Примечание;Ваш заказ;;
IN1001CR;"Наручные механические часы, Мужские
Доп. функции: Секундный циферблат, 3ATM
Мат. корпуса: Сталь
Покрытие корпуса: Без покрытия
Стекло: Минеральное
Мат. браслета/ремешка: Кожа
Тип вставок: Без вставок
Диаметр: 47
Запас хода: 36ч
Точность: ± 40 сек";12 440,00р.;Есть на складе;;;;
IN1003BK;"Наручные механические часы, Мужские
Доп. функции: Секундный циферблат, открытый баланс, 5ATM
Мат. корпуса: Сталь
Покрытие корпуса: Без покрытия
Стекло: Минеральное
Мат. браслета/ремешка: Кожа
Тип вставок: Без вставок
Диаметр: 48
Запас хода: 36ч
Точность: ± 40 сек";18 120,00р.;Товар отсутствует;;;;
IN1203CH;"Наручные механические часы с автоподзаводом, Мужские
Доп. функции: Дата, день недели, месяц, 12/24 часа, день/ночь, 3ATM
Мат. корпуса: Сталь
Покрытие корпуса: Без покрытия
Стекло: Минеральное
Мат. браслета/ремешка: Кожа
Тип вставок: Без вставок
Диаметр: 38
Запас хода: 36ч

Точность: ± 40 сек";11 210,00р.;Товар отсутствует;;;;

Только эксплодить и по номеру считать...

Почти нашёл норм программку для разделения по строкам(так как типов файлов таких около 20) - руками все настраивать хз

Edited by Николя223
Link to comment
Share on other sites

  • 0

Нашёл прогу, которая в xml все переводит. такое распарсить - пара пустяков =)


<ROWDATA>
<ROW Field0="Остатки Timex" Field1="" Field2="" Field3="" Field4="" Field5="41666,6897394676" Field6="" Field7="" Field8=""/>
<ROW Field0="Артикул" Field1="Описание" Field2="Фото" Field3="РРЦ, руб." Field4="Наличие" Field5="Ваш заказ" Field6="" Field7="" Field8=""/>
<ROW Field0="T18581" Field1="Наручные кварцевые часы, мужские
Категория: STYLE CORE
Доп. функции: нет, 3АТМ
Мат.корпуса: пластик
Цвет корпуса: черный
Стекло: акриловое
Мат. браслета/ремешка: эластичная ткань
Размеры: 8мм x 34мм" Field2="" Field3="2460" Field4="есть на складе" Field5="" Field6="" Field7="" Field8=""/>
<ROW Field0="T20041" Field1="Наручные кварцевые часы, мужские
Категория: STYLE CORE
Доп. функции: подсветка INDIGLO, дата, день недели, 3АТМ
Мат.корпуса: брасс
Цвет корпуса: серебряный
Стекло: минеральное
Мат. браслета/ремешка: кожа
Размеры: 8мм x 35мм" Field2="" Field3="3390" Field4="есть на складе" Field5="" Field6="" Field7="" Field8=""/>
Link to comment
Share on other sites

  • 0

Нашёл прогу, которая в xml все переводит. такое распарсить - пара пустяков =)

<ROWDATA>
<ROW Field0="Остатки Timex" Field1="" Field2="" Field3="" Field4="" Field5="41666,6897394676" Field6="" Field7="" Field8=""/>
<ROW Field0="Артикул" Field1="Описание" Field2="Фото" Field3="РРЦ, руб." Field4="Наличие" Field5="Ваш заказ" Field6="" Field7="" Field8=""/>
<ROW Field0="T18581" Field1="Наручные кварцевые часы, мужские
Категория: STYLE CORE
Доп. функции: нет, 3АТМ
Мат.корпуса: пластик
Цвет корпуса: черный
Стекло: акриловое
Мат. браслета/ремешка: эластичная ткань
Размеры: 8мм x 34мм" Field2="" Field3="2460" Field4="есть на складе" Field5="" Field6="" Field7="" Field8=""/>
<ROW Field0="T20041" Field1="Наручные кварцевые часы, мужские
Категория: STYLE CORE
Доп. функции: подсветка INDIGLO, дата, день недели, 3АТМ
Мат.корпуса: брасс
Цвет корпуса: серебряный
Стекло: минеральное
Мат. браслета/ремешка: кожа
Размеры: 8мм x 35мм" Field2="" Field3="3390" Field4="есть на складе" Field5="" Field6="" Field7="" Field8=""/>

Открою тайну xls и есть xml просто в архиве )) И в Excel можно сохранить документ в xml )) выйдет тоже самое почти)))

Link to comment
Share on other sites

  • 0

Я вкурсе. до этого ещё пробовал xls распаковать -  там несколько полупустых файлов, а где содержание - не ясно)))) наверно у нас эксели разные

Edited by Николя223
Link to comment
Share on other sites

  • 0

Я вкурсе. до этого ещё пробовал xls распаковать -  там несколько полупустых файлов, а где содержание - не ясно)))) наверно у нас эксели разные

Скорее всего xls был сохранен в формате excel 97-2003 версий. Они используют бинарный формат в архиве, майкрасофт открыл форматы позже начиная с 2007 версии офиса. Вот если сохранять в формате для новых версий то в архиве будут папки и файлы и данные будут в xml )

Link to comment
Share on other sites

  • 0

ч

 

 

 

Всё же что вам мешает открыть xls в экселе и пересохранить файл в csv ?
 http://pastebin.com/raw.php?i=4C2BUA7j
 
сохраните себе. Каждая строка это запись об одной точке, столбцы разделены знаком ;

Только то что с эти еще не приходилось работать да и все ровно придется очень много руками править. Хотя может я и ошибаюсь, почитаю об этом csv. )

 

csv это текстовый формат где одна строка это отдельная запись, столбцы разделены разделителем точкой с запятой тоесть вот так:
 

значение 1 ; значение 2 ; значение 3 ; значение 4
значение 1 ; значение 2 ; значение 3 ; значение 4
значение 1 ; значение 2 ; значение 3 ; значение 4
значение 1 ; значение 2 ; значение 3 ; значение 4

в вашем случае каждая строка это запись об одной точке, первое значение город, второе адрес, третье телефон, остальные часы работы в разные дни
 
Сохраните себе данный файл, потом разбираете его в php
 
<?php$arr = file(url);//считываем файл в массив построчно где 1 строка = 1 элеимент массива// Потом перебираем все элементы массива $out = array();foreach($arr as $k => $v){// разбираем кажду строку по знаку разделителю в массив и добавляем все в многомерный массив$out[$k] = explode(';', $v);}//выводимprint_r($out);

в данном случае нет возможности отследить к какой области относится город и номер склада . Так что такое решение не подойдет. Файл руками надо будет править. Ну это уже самый последний вариант. Ибо много же блин править надо, много.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy