Куплю парсер товаров миксмаркет

Объявления о сотрудничестве или предложения услуг/товаров в области интернет-маркетинга
ptutkin
Сообщения: 30
Зарегистрирован: 16 дек 2011, 05:31

Re: Куплю парсер товаров миксмаркет

Сообщение ptutkin » 18 дек 2012, 15:57

Добрый день всем! Еще раз спасибо за помощь с ХМЛ, вроде работает нормально.
Остался один вопрос, с которым мучаемся.

Никак нормально не получается загрузить файл через LOAD DATA INFILE. Данные частично едут в таблице.. Может примером подскажите запрос нормальный для offers именно? Интересует конкретно какой вы разделитель используете для полей и строк? и возможно какие-то дополнительные параметры для FIELDS и LINES

Аватара пользователя
vitocool2
Эксперт
Эксперт
Сообщения: 235
Зарегистрирован: 02 янв 2007, 00:51
Откуда: Пятигорск
Контактная информация:

Re: Куплю парсер товаров миксмаркет

Сообщение vitocool2 » 18 дек 2012, 16:17

Я загружаю так:
LOAD DATA LOCAL INFILE '".$path_dir."' IGNORE INTO TABLE table1 CHARACTER SET utf8

Разделители в текстовом файле ТАБ-ы.
Чтобы данные не ехали, нужно удалить табы, которые могут быть в названиях или описаниях товаров. Я это делаю при парсинге. Заменяйте их на пробелы например.

ptutkin
Сообщения: 30
Зарегистрирован: 16 дек 2011, 05:31

Re: Куплю парсер товаров миксмаркет

Сообщение ptutkin » 18 дек 2012, 16:34

Спасибо

а сами записи? переводом строки? их тоже убирать из описания? Если убирать, тогда самое описание будет не совсем таким, как в оригинале.
я вот в синтаксисе запроса не совсем понял смысл один.. там если не ошибаюсь пишется, что если используется разделитель какой-то (например, тот же "\n" для записей) и он встречается в тексте, то он экранируется.. правильно ли я понял? :) может и с табами так будет? :)

Аватара пользователя
vitocool2
Эксперт
Эксперт
Сообщения: 235
Зарегистрирован: 02 янв 2007, 00:51
Откуда: Пятигорск
Контактная информация:

Re: Куплю парсер товаров миксмаркет

Сообщение vitocool2 » 18 дек 2012, 16:58

Да, сами записи переводом строки \n.
ptutkin писал(а):Если убирать, тогда самое описание будет не совсем таким, как в оригинале.
Выглядят табы в браузере как пробелы. Новые строки, если не заменены соответствующими тэгами, тоже не несут ничего полезного. Поэтому и от "\n" можно смело избавляться.

Конечно нужно экранировать эти символы в тексте, если не хотите их удалять.

MarquusGun
Сообщения: 59
Зарегистрирован: 05 ноя 2009, 22:49

Re: Куплю парсер товаров миксмаркет

Сообщение MarquusGun » 21 мар 2013, 11:10

Все же вариант с SimpleXML - не есть наилучшее решение. Да, удобно обращаться к объекту и получать данные, однако, ресурсоемко очень. Выделять памяти под работу придется значительно. Гораздо легче, особенно касается слабых машин, это работать с preg_match на участках прайса. Скорость выше, памяти - минимум.

Аватара пользователя
vitocool2
Эксперт
Эксперт
Сообщения: 235
Зарегистрирован: 02 янв 2007, 00:51
Откуда: Пятигорск
Контактная информация:

Re: Куплю парсер товаров миксмаркет

Сообщение vitocool2 » 21 мар 2013, 11:22

MarquusGun, а есть решение, как быстро прайс, ну скажем на 300Мб поделить на участки для preg_match?

MarquusGun
Сообщения: 59
Зарегистрирован: 05 ноя 2009, 22:49

Re: Куплю парсер товаров миксмаркет

Сообщение MarquusGun » 21 мар 2013, 12:01

есть конечно. Я 12 декабря того года описал в этом топике.
Я не работаю с простыней целиком, зачем.
Я отрезаю кусочек, скажем, в 50 байт. Смотрю, есть ли здесь начало нужного тега или нет.
если нет, отрезаю еще 50 байт и складываю их вместе. Получаю уже 100 байт. Снова смотрю, нет - снова прицепляю вагончик и так далее. пока нужный участок не попадет целиком в эту маленькую простыню.
как только попал - регуляркой выщемляю нужные поля, значения и т.п. вырезаю обаботанное, оставляю лишь хвостик и начиная снова добавлять следующий кусочек.

Почему 50 байт? Я экспериментировал с этим буфером. Увеличивал, уменьшал - прироста особо не заметил. Поэтому, выбрал настолько малый кусок, чтобы гарантировано попал не более 1 требуемого участка. Конечно, тут жадностью можно играть в регуляркеи не бояться попадания нескольких участков в один кусок.

Ответить