Парсинг yml больших объемов
Парсинг yml больших объемов
Здравствуйте. Столкнулся с проблемой, произвожу парсинг yml больших объемов, в них имеются ссылки на фото, при парсинге загружаю этои фотки к себе на сервер и делаю ресайз. Как я понял, узкое место загрузка файлов. Т.к. Php однопоточный ЯП, все это происходит очень долго.
Как можно все это ускорить, в какую сторону посмотреть?
Как можно все это ускорить, в какую сторону посмотреть?
Последний раз редактировалось darlov 2016.01.13, 13:57, всего редактировалось 1 раз.
Re: Пасинг yml больших объемов
Больших объемов - это сколько? У меня несколько фидов по 20тысяч, они прекрасно засасываются по ночам.
2b||!2b Just read the instructions
Re: Пасинг yml больших объемов
бывает и по 50 тысяч. Причем у одно товара может быть по 5 картинок.zabachok писал(а):Больших объемов - это сколько? У меня несколько фидов по 20тысяч, они прекрасно засасываются по ночам.
Можно ли одновременно закачивать к примеру с одного товара сразу 5 картинок?
Re: Парсинг yml больших объемов
Я думаю, что нет в этом необходимости. Фотки товаров очень редко меняются, они только добавляются к новым товарам. Один раз закачать и потом закачивать только дифф.
2b||!2b Just read the instructions
Re: Парсинг yml больших объемов
Тут именно речь идет, чтоб все товары по новому загружаются...zabachok писал(а):Я думаю, что нет в этом необходимости. Фотки товаров очень редко меняются, они только добавляются к новым товарам. Один раз закачать и потом закачивать только дифф.
Есть ли какое нибудь решение?
Re: Парсинг yml больших объемов
Может для php особых решений нет и необходимо сам парсинг вынести в другой ЯП?
Re: Парсинг yml больших объемов
скачай для начала yml, потом картинки, потом обработай их. Например на go - язык достаточно простой и быстрый.
Re: Парсинг yml больших объемов
Как раз смотрю сейчас в сторону Gozelenin писал(а):скачай для начала yml, потом картинки, потом обработай их. Например на go - язык достаточно простой и быстрый.
Re: Парсинг yml больших объемов
Надо так надо. Но зачем каждый раз засасывать картинки заново заливать, если они уже есть?darlov писал(а):Тут именно речь идет, чтоб все товары по новому загружаются...
2b||!2b Just read the instructions
Re: Парсинг yml больших объемов
Вы не правильно поняли, я имею ввиду все товары новые и картинки тоже.zabachok писал(а):Надо так надо. Но зачем каждый раз засасывать картинки заново заливать, если они уже есть?darlov писал(а):Тут именно речь идет, чтоб все товары по новому загружаются...
Re: Парсинг yml больших объемов
Ну они же один раз новые. Один раз можно подождать.
2b||!2b Just read the instructions
-
- Сообщения: 92
- Зарегистрирован: 2013.01.11, 23:13
Re: Парсинг yml больших объемов
форкай\используй потоки на php, если не знаешь как могу подсказать, но php создан что бы умереть, так что я бы на твоем месте не извращался , а сделал бы парсер побырому на питоне или на другом подходящие под данные нужды ЯП, хотя наверное запили бы велик на php и посмотрел бы что бы получилось =)
Re: Парсинг yml больших объемов
Я запилил велик на php, долго очень идет. Тут нужна многопоточность, а в php этого нет, сейчас пытаюсь запилить на golangvladikamira писал(а):форкай\используй потоки на php, если не знаешь как могу подсказать, но php создан что бы умереть, так что я бы на твоем месте не извращался , а сделал бы парсер побырому на питоне или на другом подходящие под данные нужды ЯП, хотя наверное запили бы велик на php и посмотрел бы что бы получилось =)
Re: Парсинг yml больших объемов
На питоне это пишется молниеносно быстро. Я вообще не знаю питона через пару часов после прочтение базового синтаксиса + документации по грабберу уже парсеры писал. Многопоточность и тд - все сразу доступно. И работает, конечно, шустро все. Хотя и есть опыт написание парсеров на php, которые по 7-10 часов работали каждый.
Re: Парсинг yml больших объемов
лапшу небось написал, за два часа-то?)S c писал(а):На питоне это пишется молниеносно быстро. Я вообще не знаю питона через пару часов после прочтение базового синтаксиса + документации по грабберу уже парсеры писал. Многопоточность и тд - все сразу доступно. И работает, конечно, шустро все. Хотя и есть опыт написание парсеров на php, которые по 7-10 часов работали каждый.
Re: Парсинг yml больших объемов
ну, слукавил пожалуй) Пару часов на базовый синтаксис - это да. А сразу вместе с ознакомлением с библиотекой для парсинга начал писать парсеры. Парсили очень много данных с разных крупных проектов. Там на самом деле настолько все просто оказалось, порог вхождения вообще нулевой, синтаксис - минимальный, этим мне питон жутко понравился на тот момент.zelenin писал(а):лапшу небось написал, за два часа-то?)S c писал(а):На питоне это пишется молниеносно быстро. Я вообще не знаю питона через пару часов после прочтение базового синтаксиса + документации по грабберу уже парсеры писал. Многопоточность и тд - все сразу доступно. И работает, конечно, шустро все. Хотя и есть опыт написание парсеров на php, которые по 7-10 часов работали каждый.
Re: Парсинг yml больших объемов
написал за 3 часа утилиту на go (кстати, с той же многопоточностью из коробки) с конфигурированием из вне, используя ООП, прочитав за пару часов 10 глав книги уровня "для чайника".S c писал(а):ну, слукавил пожалуй) Пару часов на базовый синтаксис - это да. А сразу вместе с ознакомлением с библиотекой для парсинга начал писать парсеры. Парсили очень много данных с разных крупных проектов. Там на самом деле настолько все просто оказалось, порог вхождения вообще нулевой, синтаксис - минимальный, этим мне питон жутко понравился на тот момент.zelenin писал(а):лапшу небось написал, за два часа-то?)S c писал(а):На питоне это пишется молниеносно быстро. Я вообще не знаю питона через пару часов после прочтение базового синтаксиса + документации по грабберу уже парсеры писал. Многопоточность и тд - все сразу доступно. И работает, конечно, шустро все. Хотя и есть опыт написание парсеров на php, которые по 7-10 часов работали каждый.
после какого-то момента синтаксис всех языков становится одинаковым. ищешь только как проспособить отлаженные паттерны.
Re: Парсинг yml больших объемов
Согласен. Я описал такую же ситуацию. На тот момент когда нужны были парсеры - о go я не слышал (не знаю, был ли он тогда вообще). Я ни в коем случае не хочу ничего плохого о go сказать, просто поделился "опытом", как можно поступить.zelenin писал(а):написал за 3 часа утилиту на go (кстати, с той же многопоточностью из коробки) с конфигурированием из вне, используя ООП, прочитав за пару часов 10 глав книги уровня "для чайника".S c писал(а):ну, слукавил пожалуй) Пару часов на базовый синтаксис - это да. А сразу вместе с ознакомлением с библиотекой для парсинга начал писать парсеры. Парсили очень много данных с разных крупных проектов. Там на самом деле настолько все просто оказалось, порог вхождения вообще нулевой, синтаксис - минимальный, этим мне питон жутко понравился на тот момент.zelenin писал(а): лапшу небось написал, за два часа-то?)
после какого-то момента синтаксис всех языков становится одинаковым. ищешь только как проспособить отлаженные паттерны.
Вопрос - go сравнительно молодой язык - на питоне много устоявшихся, проверенных временем готовых библиотек, насколько go может похвастаться подобной надежностью.
Re: Парсинг yml больших объемов
Не стоит забывать, как влияет на стоимость поддержки добавление нового языка. Если есть возможность, лучше на выделенном сервере решать задачу силами PHP. Аренда отдельной машины обходится дешевле, чем поиск и содеражание сишников, питонщиков и т.п.