Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Axelenz

Користувачі
  
  • Публікації

    740
  • З нами

  • Відвідування

Усі публікації користувача Axelenz

  1. Ответ на Вопрос №2 https://simplepars.top/index.php?page=note&n=39 Ответ на вопрос №1 https://simplepars.top/index.php?page=note&n=41 Товары, которые сняты с производства можно фильтровать через "Настройки допуска к обработке страницы". предварительно спарсив вот ту самую заветную фразу (сняты с производства) для работы самого фильтра...
  2. Да, это регулярное выражение {reg[#^\s+|\s+$#]}| именно в таком виде служит для обрезания пробельных символов (любых, в том числе и перенос строки) в начале и в конце текста. О чём и говорят якоря ^ и $. Для усиления "эффекта" необходимо включить "многострочный режим" {reg[#^\s+|\s+$#m]}| тогда убираются и все лишние переносы строк в тексте (разумеется кроме тех, которые собственно и разделяют текст на строки). Если текст заполнен "неряшливо", а это сплошь и рядом такое, то после <td>, например, или перед </td> (или после и перед <div> и </div> соответственно) вполне могут оказаться лишние пробелы... Поэтому лучше использовать связку из двух регулярок {reg[#\s{2,}#]}| {reg[#^\s+|\s+$#m]}| Первая сводит все пробельные символы от 2-х и больше к одному пробелу, а вторая обрезает возможные "хвосты" (неряшливые пробелы) в начале и в конце строк... Но самое главное - это сама последовательность регулярных выражений, куда есть смысл их вставлять... Ну чтобы добить пробельную тему... Иногда, очень редко, приходится сохранять текст именно в первоначальном "построчном" виде, тогда {reg[#\s{2,}#]}| необходимо разделить на вертикальную и горизонтальную составляющие: {reg[#\v{2,}#]}|{br} {reg[#\h{2,}#]}| текст сохранится в "стихотворной" форме.
  3. И я бы не дал... Ведь любой сайт, особенно "новичка", который упоминается в этой части форума, идёт под грифом "Совершенно секретно" и на него просто не возможно попасть в интернете с обычного домашнего компьютера, а каждый проект - это именно тот шаг, который приведёт его владельца к достатку и процветанию... А мы тут сидим изучаем никому не нужные мануалы
  4. Для этого есть справка уважаемого разработчика, как правильно разделить атрибуты на Наименование атрибута и Значение атрибута. Привести всё к виду Название атрибута{csvnc}Значение атрибута{csvnc}Название атрибута{csvnc}Значение атрибута{csvnc} Даже по тому скудному фото видно, что не привели Вы всё к нормальному виду... https://simplepars.top/index.php?page=note&n=25
  5. Товар загружается так, как идут ссылки. Хотите выстроить по определённому порядку товар - выстройте по этому порядку ссылки и сделайте между ними паузу... например 5, чтобы наверняка... Чтобы выстроить в обратном направлении - берёте список, скидываете его в Excel, рядом столбец заполняете цифрами по порядку и сортируете этот столбец вместе со ссылками в направлении убывания. И дальше используете для парсинга уже этот список... Если, конечно, умеете пользоваться Excel... Не очень понятно, что даст выстройка товаров по порядку, как у донора ? Если это влияет на то, что новый товар всегда находится первым, то я бы не так делал... не обязательно, что ссылки все спарсятся именно, как у донора... могут быть ньюансы, например, категории разные. Я бы лучше рекомендовал парсить сначала в csv ссылку + id товара, выстраивать в Excel по порядку id (если он построен на логике "порядковый номер" товара на сайте) и потом уже именно по такому принципу выстраивать ссылки для парсинга... ну и задержка, чтобы товар не проскочил "вне очереди"... Да и вообще, чтобы понять, как лучше сделать это необходимо понимать самое главное - ЗАЧЕМ ? А так это всего лишь догадки и построение выводов на их основании...
  6. Регулярка именно в таком виде не сработает. Очевидно Вы имеете ввиду "Случайный текст", как это реализовано, например в АОП. Регулярные выражения в чистом виде, не предполагают рандомного выбора данных. Поэтому псевдорандомность (случайную выборку) возможно получить только в одном случае - используя уже имеющиеся в коде страницы случайным образом меняющиеся данные. Это может быть, например: дата, время или в нашем случае - id товара. Сложность выполнения поставленной задачи предполагает приличные знания как самого модуля так и регулярных выражений... Сама схема вкратце выглядит так: - делаем границу парсинга, которая захватывает и id товара и его Описание - в захваченных данных делаем замены в коде таким образом, чтобы потом в повторяющиеся границы попали и id товара и Описание - делаем повторяющиеся границы, захватывая id товара и Описание - регулярками подрезаем id, оставив, например, только 2 последние цифры номера В итоге получим что-то типа: 22 Описание товара... бла-бла-бла. 58 Описание товара... бла-бла-бла. 39 Описание товара... бла-бла-бла. ... Теперь включаем свою SEO фантазию и делаем замены... {reg[#^(22) Описание товара#]}|$1 Описалово товарчика {reg[#^(58) Описание товара#]}|$1 Товарное описалово {reg[#^(39) Описание товара#]}|$1 Товар и его описание в стихах ... {reg[#^(\d2(.*?))бла-бла-бла#]}|$1 бли-бли-бли {reg[#^(\d8(.*?))бла-бла-бла#]}|$1 блю-блю-блю {reg[#^(\d9(.*?))бла-бла-бла#]}|$1 бля-бля-бля ... Это, если вкратце...
  7. Ошиблись в доноре... Вы новичок в теме парсинга и хотите сразу начать парсить Розетку, да ещё и в 5 потоков без задержек и за пару часов все 15,000 ссылок... ))) Что-то мне подсказывает, что у Вас ничего не получится...
  8. На вкладке Парсинг в ИМ "кнопка запуска" называется Старт парсинга, если планируете загружать непосредственно в магазин. Во-вторых у Вас стояло создание кеша. В третьих Вы хотели использовать не все ссылки, а только ссылки со своего списка, а рабочий список или нет... Т.е. исправьте на использование всех ссылок и парсите, пока не используйте кеш, попробуйте хотя бы так что-то получить. Да... и читайте всё время логи... там всё рассказывается... Я поправил эти ньюансы и начинает парсить и выходим на ошибку 403... 2021-11-03 12:53:41| Парсинг : ОТВЕТ | Forbidden, доступ запрещен. Ответ сервера [403] Ссылка | https://cs-online.su/catalog/vanny/stalnye_vanny/77370/ А это уже совершенно другая история )
  9. Мне кажется, если на вкладке "Поиск/Замена" кнопки сделать вот такого вида (как на картинке выше): - Преобразовать - Спарсить границу (под ней) - Спарсить границу + Преобразовать (одна большая кнопка правее) то будет и логичнее и понятнее для пользователей, чем так, как это сейчас выглядит... ну или хотя бы вместо "Сп" написать полностью: "Спарсить"... место ведь есть. Если не делать одну большую кнопку, то тогда логичнее "Сп+Преобр." перенести под "Преобразовать", а вместо неё разместить "Спарсить границу", так будет понятнее, правее идут ссылки...
  10. @Rassol2 Очередное наблюдение за сайтами клиентов... Делал парсинг пару месяцев назад (магазин одежды) и по условию ТЗ выбирать нужно было у донора ссылки не по всем страницам пагинации и не на все группы товара, а, например, если платья имеют 400 страниц пагинации, то берём ссылки со 100 страниц; если футболки имеют 100 страниц пагинации, то берём ссылки с 20 страниц, т.е. выбираем то, что поновее. Так и сделал и всё парсилось... Но когда через пару месяцев посмотрел на товары, то обнаружил, что при увеличении общего количества страниц, количество товара в наличии по отношению к первоначальному уменьшилось почти в 2 раза! Специально начал проверять, почему так происходит и причина оказалась весьма банальной... сезонность товара. Так 400 страниц платьев превратились осенью, например, в 700 страниц пагинации, а футболок наоборот уменьшились до 5 страниц... Получилось, что при парсинге значительно уменьшилось ежедневное поступление товара в магазин за счёт изменения пропорции летний/зимний товар. Возникает следующий вопрос... как же можно это донести до клиента и возможно ли его обучить вносить сезонные изменения в Очередь сканирования ссылок ? Очевидно, что нет или далеко не всегда... Из вышесказанного возникает очередная хотелка "на будущее" или "отложите в длинный ящик"... Выбор в Графике выполнения cron заданий по дополнительному условию, например: - в зависимости от времени года (просто привязкой к дате); - в зависимости от дня недели (у некоторых магазинов цена в обычный день и в выходной может отличаться; привязка к дню недели); - в зависимости от времени дня (по типу - ночью дешевле, как пример; привязка ко времени). Т.е. чтобы совсем было понятно, например: до 28/02/2022 выполняется cron [1]Одежда_зимняя, а уже с 01/03/2022 выполняется cron [2]Одежда_весенняя. В которых можно уже предусмотреть разные наценки для разных групп товаров, разные пропорции парсинга категорий товаров и пр. важные моменты для магазинов, которые связаны с сезонным товаром: - магазины одежды - магазины обуви - магазины товаров для детей - спортивные магазины и пр. Думаю, что на сегодня хотелок достаточно, наверное я уже и так превысил их количество за единицу времени...
  11. Для профилактики лучше использовать уменьшение нагрузки на сайт донора... А это можно достичь, например: - с помощью более продуманной фильтрации сбора ссылок как в очереди, так и в ссылках на товар, - использовать для парсинга не все 7 дней недели, - разделением парсинга на несколько частей за счёт использования таймаута, - уменьшением количества потоков до 1, - разделением парсинга для обновления и парсинга для добавления товара (при необходимости), - увеличением времени парсинга за счёт увеличения задержек, - создание задержек с использованием рандомного выбора паузы вида от и до: "1-10"...
  12. А что скажете по поводу реализации "Импорта ссылок из файла" через cron ? Вы летом писали, что есть в планах такая доработка... Иногда приходится использовать сразу два модуля, чтобы реализовать такую хотелку... ( Первым модулем парсим и формируем прайс со своими переделками, а вторым уже загружаем его на сайт... это чтобы "без рук", чтобы всё именно через cron происходило.
  13. Добрый день. Да, было бы замечательно добавить в модуль дополнительные возможности. Потому, как если в модуле много разных проектов, если у Заказчика несколько разных Исполнителей, если модуль обновляется разными Исполнителями... учитывая все эти "если" вносить какие-то исправления в сам модуль, кроме автора модуля, не желательно...
  14. Из последних хотелок... Очень полезная возможность была бы, чтобы при разборе xml можно было бы получать в "Ссылки на товары" не только ссылки вида ....xml, но и реальные ссылки на товар из xml: <url>https://site.com/catalog/product/tovar</url>. Это весьма облегчило бы жизнь тем, кто работает с xml... Получили бы выбор парсить или с xml или по полученным ссылкам парсить дальше сайт. В чём фишка ? В том, что во-первых можно не собирать ссылки с сайта, в том, что иногда заказчика интересует только реальное наличие, а оно, как правило в xml бывает... Можно ввести поля во вкладке "Обработчик xml", где был бы выбор, какого плана ссылки нужны для работы... Опять же, если теги не так называются, пусть будет выбор полей, где указать можно конкретно. Или даже лучше по умолчанию пусть будет <url>, а если нет - то указать конкретно, что в xml находится... P.S. В последнее время много приходится работать с сайтами на Битриксе, а там сплошные xml причём не самого лучшего вида... парсить это всё просто жесть... А если пофантазировать... Сделать выбор вида ссылок не "ИЛИ", а "И" (т.е. чтобы ссылка была вида xml и реальная ссылка под ней), то можно было бы организовать при парсинге выбор откуда брать данные, если в xml их нет, то парсим данные с сайта... Но это чисто теоретические фантазии на тему каким будет SimplePars в далёком будущем... )))
  15. characteristic-title">| <div class="characteristic-values{skip}>|{csvnc} [{skip}]| {reg[#\s+</div>\s+<div class="characteristic-value">\s+#mu]}|, <{skip}>| {reg[#\v#]}| {reg[#\h{2,}#]}| {reg[#\s+?{csvnc}\s+?#]}|{csvnc} В повторяющихся границах вставьте, может где подправьте... SPsetting-91.json
  16. Если у Вас всё, что в title идёт, как Название атрибута, а в value соответственно, как его значение и так везде, то можно спарсить атрибуты. У Вас только получится, что в value они должны идти или списком или через разделитель. Т.е. это разные значения одного Атрибута фактически... Но это не кусочками нужно видеть, как Вы даёте... не хватает общей картины, что там ещё есть под капотом... Ссылка на сайт есть вместо картинки ? )
  17. Да, к сожалению далеко не все сайты наполняют информацией сайты так, что можно легко это спарсить... Отсутствие симметричности и логики в размещении атрибутов намекает на дальнейшую доработку вручную... сам такое не люблю...
  18. Разделителем можно взять диаметр, но не факт, что он идёт разделителем для всех атрибутов. Как вариант, можно сделать замену диаметра на ": Ø" Ø|: Ø и потом ::|: на тот случай, если два двоеточия получится где-то
  19. ПРИМЕРЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ. Для использования в модуле SimplePars. На самых простых примерах буду показывать тем, кто не имеет опыта работы с ними, как можно использовать регулярные выражения на вкладке Поиск/Замена. По мере своей загруженности постараюсь выкладывать подобные примеры, если это будет интересно и пригодится в работе ещё кому-то. Что такое регулярные выражения Вы можете почитать в интернете, в специальной литературе, а так же на странице разработчика модуля Заметки по регулярным выражениям Использование якорей: ^ - Начало строки. \A - Начало текста. Можете использовать это как образец. Строки с регулярными выражениями и комментариями к ним закомментированы с помощью "#". Уберите "#" и выражение начнёт работать... Далее идут примеры работы каждого регулярного выражения... Пример №1. Пример №2. Пример №3. Пример №4. Пример №5. Пример №6.
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.