-
Публікації
740 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Усі публікації користувача Axelenz
-
Подобные темы уже не раз обсуждались на форуме... ищите https://opencartforum.com/topic/123017-podderzhka-simplepars-universalnyy-parser-dlya-im/?do=findComment&comment=1776544&_rid=711240
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
А Вы всегда можете спарсить самого себя и внести любые изменения )
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Данные парсятся с донора... id товара ещё не присутствует ни в каком практическом виде при получении этих данных, id присваивается при внесении товара на сайт CMS Opencart.
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
В Вашем случае можно использовать следующее регулярное выражение: {reg[#(от\s+\d+)\s+до\s+\d+#iu]}|$1 это самое простое выражение без избыточности, т.е. не учитываем то, что может стоять до или после фразы "от 4 до 6 лет" https://prnt.sc/MGfZEU3_Rzw5 Группу $2 можете использовать в зависимости от того, какие данные хотите ещё получить/обрезать. {reg[#(от\s+\d+)\s+до\s+\d+(\s+лет)(.*?)$#iu]}|$1$2 https://prnt.sc/ejZn8q5rrFcR {reg[#^(.*?)(от\s+\d+)\s+до\s+\d+(\s+лет)(.*?)$#iu]}|$2$3 https://prnt.sc/f7vezThcT2q0 Выражение регулярное на стр. 446 {reg[#^(.*?)Fish(.*?)$#]}|Fish это немного о другом... Это поиск слова во всей фразе, при нахождении которого вся фраза заменяется на это слово. У Вас же иная задача - это вырезание из текста не нужных слов. Поэтому в Вашем случае нужно юзать именно правильные регулярки. Разница в универсальности использования... так регулярка {reg[#^(.*?)(от\s+\d+)\s+до\s+\d+(\s+лет)(.*?)$#iu]}|$2$3 будет срабатывать при любых цифрах указанных в возрасте... P.S. А вообще по одной единственной фразе строить регулярное выражение для донора это не правильно... правильно - собрать анамнез, например, всех (большинства) атрибутов и уже на основе увиденного разнообразия ставить диагноз...
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
http://joxi.ru/52a9DBJu0nEJO2 Регулярное выражение имеет такой вид (это по быстрому, чтобы особо не заморачиваться) {reg[#^(\d+?{csvnc})(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)(\d+?({csvnc})?)$#]}|$1$4$8$12$16$20$24 {reg[#{csvnc}$#]}| Решение не идеальное и нужно подпилить под себя... сколько там максимально возможных вариантов будет и т.п.
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Проблема после парсинга, в основном у всех одна - не хватает места на хостинге с прежним тарифным планом... Бывает ещё, что по головотяпству где-то оставляют, например, непарный <div>(</div>) и вся разметка летит...
-
Почистите немного от мусора, будет видно, какие границы оставить, а что удалить \t| \r\n|{br} \| {reg[#\s{2,}#u]}|{br}
-
Такая конструкция имеет недостаток. А что, если не во всех title встречается это ключевое слово ? Для этого необходимо сначала добавить ключевое слово, например, в начало текста, а потом уже удалять по нему...
-
Что хотите вполне понятно, но Вы дали уже следствие Ваших действий, а нужно видеть изначальную страницу самого донора, а не её интерпретацию.
-
А для этого как раз и существуют регулярные выражения. https://simplepars.top/index.php?page=note&n=37
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Для этого автор модуля специально и создал Повторяющиеся границы... https://simplepars.top/index.php?page=note&n=8
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
А для сбора фото используете какой тип границы Обычный или Повторяющийся ?
-
При таких количествах использовать все 5 потоков с двух сайтов смысла нет. Есть пословица: «Тише едешь – дальше будешь»... Лучше всего эмпирическим путем найти золотую середину для каждого сайта, за сколько часов и во сколько потоков всё приемлемо спарсится, а не долбить донора по максимуму ) Да и свой хостинг нагружать... так себе перспектива...
-
Вы же не пишете самого основного - количество товаров. И что это за действия ? Обновление цены и количества с догрузкой новых товаров ? Ну и понимать необходимо, что за донор... может это Prom или ещё что... Вы задаёте вопросы, но не говорите самых важных моментов... а именно в них - всё.
-
Если у Вас есть 2 разных сайта и на обоих стоит модуль SimplePars, то можете парсить с одного или с разных доноров, без разницы. Только делать всё равно это необходимо осмысленно, чтобы не нагружать донора своей излишней активностью...
-
Это реализовать не возможно, потому, что у Вас такой частный случай. А может кому-то нужно наоборот не сохранять, а удалять Fish, правило будет выглядеть по другому... А кто-то, так же не вникая в регулярные выражения, может подумать, что это всё работает только для слова Fish... и так получится целая книга... а смысла в этом нет, потому, что книг по регуляркам и так хватает...
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Если Вам нужно удалить всё, кроме этого слова Fish, то правило с цифрами, на которое Вы ссылаетесь это совершенно о другом... Вам что-то типа этого нужно: {reg[#^(.*?)Fish(.*?)$#]}|Fish
- 13 413 відповіді
-
- 3
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Вам вот эти слова читать и читать и читать...
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Если Вы хотите сделать регулярку методом научного тыка, то это надолго... Придётся всё же почитать хотя бы минимум, что это такое и как оно работает... {reg[#(^Fish)#]}| как Вы указываете удалить, так оно правильно и удаляет... Вам сюда: https://simplepars.top/index.php?page=note&n=37
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
У Вас типичный случай, когда Атрибуты выводятся через таблицу <table> и имеют ещё и группу Атрибутов. Лучше всего подобные конструкции выводить по классическому способу, с простыми и повторяющимися границами, как и писал @partshez Используйте сразу же в простой границе регулярки: | {reg[#\s{2,}#u]}| {reg[#\s+?</span>\s+?#u]}|{csvnc} А дальше - повторяющиеся границы.
- 13 413 відповіді
-
- 3
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
На сайте может быть кроме кода товара ещё и id товара, т.е. порядковый номер товара на сайте. Можно использовать его. Связываться с Названием товара в качестве Артикула (даже используя хеш) занятие так себе... а если там был лишний пробел в Названии и его потом увидели и исправили, то что тогда ?
-
Ищите, что у Вас делится на ноль или что-то подобное происходит, не разрешённое с точки зрения математики или Opencart.
- 13 413 відповіді
-
- 1
-
- simplepars
- парсинг товаров opencart
- (і ще %d)
-
Поиск прекрасно находит ответы практически на любые подобные вопросы, например: https://opencartforum.com/topic/112004-resheno-pomogite-s-oshibkoy-division-by-zero-in/
-
Можно так, а можно в поиск/замене все эти категории через регулярки заменить на одно число или слово и потом уже в настройке допуска указать фильтрацию одной строкой. Это зависит от удобства использования, как Вы планируете с этим дальше работать. Я использую оба варианта в зависимости от ситуации... В настройке допуска удобнее размещать то, что сегодня не нужно, а завтра может уже нужно и оно находится под рукой...
-
Занимаюсь автоматизацией рутинной работы с помощью модулей АОП и SimplePars или в связке двух этих модулей одновременно. Пишите, уточняйте... Пример: http://joxi.ru/J2boQBJtMoPBnA