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

Recommended Posts

1 час назад, stas2010 сказал:

{-2|<} - До сотен в меньшую сторону

Спасибо поправил. 

Надіслати
Поділитися на інших сайтах

не знаю в теме данной можно просить или  нет, общем куплю настройки парсинга под донора, модуль купил, а с настройкой возится времени нет. ( нужно настроить именно парсинг в мой ИМ 
контакты с ценой в лс  или в телегу @Hotels778

Надіслати
Поділитися на інших сайтах


47 минут назад, evgeniygord сказал:

не знаю в теме данной можно просить или  нет, общем куплю настройки парсинга под донора, модуль купил, а с настройкой возится времени нет. ( нужно настроить именно парсинг в мой ИМ 
контакты с ценой в лс  или в телегу @Hotels778

Здравствуйте.
Напишите какой донор и как нужно настроить. 

Надіслати
Поділитися на інших сайтах

Обновление 2.3-8_Beta-2

Установка наценки, и округление чисел. 

 

Доработал систему по просьбам/идеям пользователей. Спасибо @s7ranger @stas2010

Теперь есть возможность принудительно округлять числа до любого значения, которое вам будет нужно. 

Условия округления вписывается первым параметров в строку Наценка. на странице Поиск/Замена.

 455c74a663.png.8d81f38e93ba5e4fd9b87a096cee8c7a.png

 

Формат ввода. 

Правило округления должно быть записано в фигурных скобках { } 
Кратность округления отделяется от указания стороны округления вертикальной чертой. |

 

PS. Число X кратно числу Y, если X делится на Y без остатка.

 

Первая цифра говорит об округлении кратному определенному числу. 

{10} - кратное десяткам
{100} - кратное сотням
{1000} - кратное тысячам
{5} - кратное пяти

{3} -кратное трем
{2} -кратное двум

{1} -кратное одному

Кратность дробных чисел. 

Для указания округления до определенного количества символов в дробных числах так же записывает кратное число.

{0.1} - округлить до десятых

{0.01} - округлить до сотых.
{0.005} - округлить до пяти тысячных.
{0.0001} - округлить до одной десяти тысячной. 


Поддерживается два формата вода.
1. Без указания стороны округления. {5}
2. С указанием стороны округления. {5|>}

 

Без указания стороны округления
Если вы указываете алгоритм округления без определения в какую сторону округлять, модуль округляет по общепринятому принципу.

 

Пример округление кратному пяти. {5}
4 = 5
6 = 5

2,4 = 0

2,5 = 5

 

На примере десятков правило {10} 

756 = 760

755 = 760

754 = 750

 

Пример округления дробей.

Правило {0.01}
15,756 = 15.76

15.756423 = 15.76
Правило {0.005}

15.756423 = 15,755

Правило {0.001}

15.756423 = 15,756

Правило {0.00004}

15.756423 = 15,75644

 

По сути модуль не ограничен в выборе к какому знаку и какому числу округлить значение. 

 

С указанием стороны округления

С указанием стороны все так же как и без. Исключением является принудительное округление в большую или меньшую сторону. 

Примеры дальше буду показывать на целых числах, так проще :) 

Правило {10|>}
21 = 30
29 = 30

20.000001 = 30

 

Правило {10|<}

29 = 20

25 = 20

21 = 20

 

Я думаю таких настроек хватит что бы удовлетворить потребности 99.999% 

Честно говоря где такие округления могут перегородится не знаю. Я не встречал программ с такой гибкостью в округлении. И делал не потому что думал вам пригодится. Я было интересно реализовать. :) 

 

В 01.06.2019 в 08:46, winner0377 сказал:

Возможно ли самому сделать чтобы цена округлялась и вместо 5,55 выходило 6? 

Теперь могу ответить на ваш вопрос.
С этой версии модуля вы можете спарсить число и округлить его до любого нужного вам значения. Без указания наценки или с ней. Не важно. :-o


Собственно с округлением все !

 

Добавлена возможность использования Регулярных выражения в правилах поиск замена!!! :-o

Теперь если вам не хватает стандартного набора правил в Поиск замена выражениях вы можете использовать регулярные выражения!
Обычные правила поиск замена можно комбинировать с регулярными выражениями

То есть 

9d6cd25133.png.3f86d7f367d369418487932b20c759f9.png

Синим выделил обычные правила. А красным правила регулярных выражений.

 

Пример использования регулярных выражений
Разберем правило округления и наценки {5|<};*1.3;100/25;(0-100)*1.2000002
И дадим каждому из правил свое название. 

[Правило округления]
[Правило наценки тип ПЕРВЫЙ]
[Правило наценки тип ВТОРОЙ]
[Правило наценки тип ТРЕТИЙ]


Как выглядит поиск замена

ff784b2a6c.thumb.png.c279750807ff8a553d98b8a6e5ddd497.png

Регулярные выражения это очень сильный инструмент и у меня не хватит жизни что бы расписать все возможности и преимущества.
По этому я расскажу только о синтаксисе и дам ссылки на документацию. 
Так же просить меня написать правило в регулярных выражениях не стоит,  я знаю только 5% всех возможностей. И сам постоянно прокачиваю свои знания. 

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

Синтаксис правил с регулярными выражениями 

Для того что бы записать правило с использованием регулярных выражений вам нужно в левой стороне указать
{reg[ Здесь правило поиска реглярок ]}|На что заменить


С левой стороны правила поиск замена может быть только регулярка. С правой как обычно. 
Допустим мы хотим найти в тексте это значение (0-100)*1.2000002 и заменить его на это [Правило наценки тип ТРЕТИЙ]

Правило будет выглядеть так

{reg[#\([0-9]+[,.]?[0-9]*[-+*/]?[0-9]+[,.]?[0-9]*\)[-+*/]?[0-9]+[,.]?[0-9]*#]}|[Правило наценки тип ТРЕТИЙ]

 

В форме вода нужно самому указывать разделитель в регулярных выражениях (максимум возможностей)

 

Выдержка из документации. 

Спойлер

Часто используемыми разделителями являются косые черты (/), знаки решетки (#) и тильды (~). Ниже представлены примеры шаблонов с корректными разделителями.


/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

 

Но я крайне рекомендую в роли разделителя использовать #

Я так делал и тестировал все на решетке # :) 
 

Подытожим формат указания регулярки
{reg[ Правило здесь ]}

Регулярные выражения не для всех, а только для самых искушенных. Это универсально гибко. Но и сложно.
Ссылка на документацию по регулярным выражениям - https://www.php.net/manual/ru/reference.pcre.pattern.syntax.php

 

Так же здесь оставлю фото мини руководства
1599.thumb.png.c087cef6ecc0562133c4e71dd9b3f0da.png

 

Скачать краткое руководство по регуляркам можете по этой ссылкеhttps://simplepars.top/doc/reg.pdf
Потренироваться в регулярных выражениях можно на этом ресурсеhttps://regex101.com/


На этом внедрения нового функционала на странице Поиск/Замена я пока заканчиваю. 

Жду ваши отзывы :) 

  • +1 4
Надіслати
Поділитися на інших сайтах

41 минуту назад, Rassol2 сказал:

Я думаю таких настроек хватит что бы удовлетворить потребности 99.999% 

Честно говоря где такие округления могут перегородится не знаю. Я не встречал программ с такой гибкостью в округлении. И делал не потому что думал вам пригодится. Я было интересно реализовать. :) 

 



 

Спасибо! Я пользуюсь у себя округлением вверх с точностью до 10 (в экселе). Было 1234 рубля, стало 1240.

Продавцам проще сдачу давать :)

  • +1 1
Надіслати
Поділитися на інших сайтах


1 минуту назад, Nomandvs сказал:

Спасибо! Я пользуюсь у себя округлением вверх с точностью до 10 (в экселе). Было 1234 рубля, стало 1240.

Продавцам проще сдачу давать :)

в вашем случаи нужно будет просто указать {10|>}
и цена которая будет спарсена округлится до десятков в большую сторону. :wink:

Надіслати
Поділитися на інших сайтах

Добрый день.
А если ли какой-то вариант как-то ускорить парсинг?

Парсинг настроен на локалке.
Собрано ссылкок 366961 шт.

примерно за 24 часа было спарсено 6400 шт
В итоге с такой скоростью парсить придется примерно 50-60 дней.
---
парсятся 3 колонки.
---
есть ли шанс что с сервера будет быстрее происходить парсинг?
 

12 часов назад, Rassol2 сказал:

 

 

Надіслати
Поділитися на інших сайтах


Добрый день.
А если ли какой-то вариант как-то ускорить парсинг?
Парсинг настроен на локалке.
Собрано ссылкок 366961 шт.
примерно за 24 часа было спарсено 6400 шт
В итоге с такой скоростью парсить придется примерно 50-60 дней.
---
парсятся 3 колонки.
---
есть ли шанс что с сервера будет быстрее происходить парсинг?
 
 
В парсинге в файл основное время это ответ сервера. Время за которое сервер отдает страницу. Многопоточности в модуле нету поскольку сам язык PHP не поддерживает многопоточность. В планах есть написать многопоточной парсер на питоне и сделать передачу пачки ссылок на удаленный сервер который произведет парсинг пачки ссылок в многопоточном режиме и отдаст пачку спарсеных страниц обратно. А модуль по очереди их обработает. Это намного ускорит работу.

Но это не скоро. Ещё реализацию крона нужно сделать и много вещей для парсингу в сайт.

Но сейчас ничего особо сделать нельзя. Все упирается в скорость ответа сайта донора.

Отправлено с моего Pixel через Tapatalk

  • +1 1
Надіслати
Поділитися на інших сайтах

8 часов назад, Rassol2 сказал:

Добрый день.
А если ли какой-то вариант как-то ускорить парсинг?
Парсинг настроен на локалке.

 

Тоже интересует данный вопрос. Решал его тем, что запускал парсинг параллельно на локалке и на поддомене... Может есть смысл запустить ещё, например, на виртуальной машине параллельно или создать несколько поддоменов для этой цели. А то реально для парсинга товаров >100K не хватает никакого терпения...

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

Надіслати
Поділитися на інших сайтах


2 минуты назад, Axelenz сказал:

при имеющемся однопоточном модуле ?

Вот тут сразу поправлю. Не модуле. А в принципе весь движок. Все что на php не работает в многопоточном режиме. 

Как вариант можно имитировать многопоточность запуская одну и туже задачу от разных пользователей. 
то есть
Создаете 4 пользователя в магазине. (что бы не боятся за токен)
Скачиваете 4 браузера. 
1. Хром
2. Мазила
3. Опера
4. Яндекс браузер
 

в каждом браузере заходите под разными пользователями в админку. И затем заходите в одну и туже форму поставщикам и нажимаете старт всеми 4 браузерами. 

И вот у вас полноценный парсинг в 4 потока. 
Причем все будет сохранятся в один файл csv или в один магазин. 

Вот вам реальная схема работы в многопоточном режиме. 

Надіслати
Поділитися на інших сайтах

В 04.06.2019 в 21:18, Rassol2 сказал:

при имеющемся однопоточном модуле ?

как вариант - просто создать 3-4 конфига. тут, правда, желательно сделать столько же отдельных файлов, если в таблицу парсится - удобнее потом отслеживать, нежели всё в кучу пихать.

 далее полученные ранее ссылки делим на 3-4 (или сколько надо частей) и вставляем в созданные конфиги.

запускаем модуль даже в одном броузере в нескольких закладках. парсим.

Надіслати
Поділитися на інших сайтах


Доброго такой вопрос, как сохранять товар сразу в 2 категории допустим Ноутбуки > Ноутбуки Samsung и тд
и можно ли создать парсинг атрибутов если для  их открытия обязательно клик по другой ссылке,
как на этом сайте 

 

Надіслати
Поділитися на інших сайтах


2 часа назад, evgeniygord сказал:

Доброго такой вопрос, как сохранять товар сразу в 2 категории допустим Ноутбуки > Ноутбуки Samsung и тд
и можно ли создать парсинг атрибутов если для  их открытия обязательно клик по другой ссылке,
как на этом сайте 

 

1. На данный момент нет. Можно сохранять товар только в одну категорию.
Второй вопрос по поводу характеристик. Если вы можете получить ссылку при вызове которой сайт отдаст вам код с атрибутами, такие атрибуты модуль сможет спрасить. 
там где для парсинга атрибутов, или любой другой информации нужно производить ajax запросы на подгрузку элементов на странице.
Такие данные модуль не сможет спарсить. 

Надіслати
Поділитися на інших сайтах

6 часов назад, Rassol2 сказал:

1. На данный момент нет. Можно сохранять товар только в одну категорию.
Второй вопрос по поводу характеристик. Если вы можете получить ссылку при вызове которой сайт отдаст вам код с атрибутами, такие атрибуты модуль сможет спрасить. 
там где для парсинга атрибутов, или любой другой информации нужно производить ajax запросы на подгрузку элементов на странице.
Такие данные модуль не сможет спарсить. 

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

Надіслати
Поділитися на інших сайтах


ну вот я могу получить ссылку на страницу с  открытыми атрибутами,  но  не вижу как это реализовать в парсере ?
чтобы он сперва собрал с основной страницы описание, а потом по второй ссылке атрибуты
Вам нужно собрать 2 типа ссылок. Первым можете загрузить товар вторым типом ссылок обновить атрибуты.

Отправлено с моего Pixel через Tapatalk

Надіслати
Поділитися на інших сайтах

15 часов назад, Rassol2 сказал:

Вам нужно собрать 2 типа ссылок. Первым можете загрузить товар вторым типом ссылок обновить атрибуты. 

 

 

Ссылка на товар с открытыми атрибутами выглядит так 
тоесть в конце просто добавляется #specifications
(парсер игнорирует это, и открывает просто страницу товар. 

 

Надіслати
Поділитися на інших сайтах


 
Ссылка на товар с открытыми атрибутами выглядит так 
тоесть в конце просто добавляется #specifications
(парсер игнорирует это, и открывает просто страницу товар. 
Спойлер https://www.fotosklad.ru/catalog/noutbuk-acer-swift-5-sf514-53t-784c-w1intel-core-i7-8565u-16gb-512gb-ssd-no-odd-14-fhd-ips-multi-touch-72-ntsc-uma-windows-10-grey-195975.html#specifications
 
Решетка перед параметром. Это обращение к js значит на данном сайте атрибуты подгружаются дополнительным запросом.
Парсер это не браузер и он не может принять js код и выполнить то что там написано.

Если бы в коде страницы были бы данные атрибутов а вторая ссылка просто меняла бы в html коде значение показать скрытое тогда бы модуль могу достать все данные.

А так получается Неля спарсить то чего не в коде страницы

Отправлено с моего Pixel через Tapatalk

Надіслати
Поділитися на інших сайтах

 
Ссылка на товар с открытыми атрибутами выглядит так 
тоесть в конце просто добавляется #specifications
(парсер игнорирует это, и открывает просто страницу товар. 
Спойлер https://www.fotosklad.ru/catalog/noutbuk-acer-swift-5-sf514-53t-784c-w1intel-core-i7-8565u-16gb-512gb-ssd-no-odd-14-fhd-ips-multi-touch-72-ntsc-uma-windows-10-grey-195975.html#specifications
 
Хотя я нашел способ как это достать все. Вечером буду за рабочим местом я вам подробно распишу :)

Нету нерешаемых задач )))

Отправлено с моего Pixel через Tapatalk

  • +1 1
Надіслати
Поділитися на інших сайтах

5 часов назад, evgeniygord сказал:

 

Ссылка на товар с открытыми атрибутами выглядит так 
тоесть в конце просто добавляется #specifications
(парсер игнорирует это, и открывает просто страницу товар. 

 

Собственно как и обещал. 
ответ на ваш вопрос хранился на поверхности. 

Данный донор предоставляет сайт для мобильной версии. А именно перед именем донора добавляем букву m
https://m.fotosklad.ru/catalog/noutbuk-acer-swift-5-sf514-53t-784c-w1intel-core-i7-8565u-16gb-512gb-ssd-no-odd-14-fhd-ips-multi-touch-72-ntsc-uma-windows-10-grey-195975.html
Вот так мы попадаем на мобильную версию сайта.

поскольку телефон более требователен к трафику, и к производительности в плане дизайна страниц, данные ссылки имею все данные уже внутри в облегченной форме.
И ненужно добавлять #specifications Все есть стразу на странице.

Эти данные не как не отличаются от десктопной версии. Так что либо пытаетесь собрать ссылки с домена 
https://m.fotosklad.ru/
Либо к уже имеющимся добавляете букву m 

Я проверил в коде есть все атрибуты. 
Так что можете спокойно парсить и все намного проще :) 

Спойлер

1660204628__2019-06-07_15-32-05.thumb.png.ca86b52919cc08eb1a8824864b311735.png

 

  • +1 1
Надіслати
Поділитися на інших сайтах

2 часа назад, Rassol2 сказал:

Собственно как и обещал. 
Так что можете спокойно парсить и все намного проще :) 

  Показать контент

1660204628__2019-06-07_15-32-05.thumb.png.ca86b52919cc08eb1a8824864b311735.png

 

 я вот сперва  забыл, почему я изначально отказался от мобильной версии, сейчас вспомнил Фото в мобильной версии фото мелкого размера и в исходном коде нет нигде  больших
 а если я сперва спаршу всю информацию  о товаре, а потом возьму ссылки на полный сайт, получиться обновить фото ?   главное чтобы ID товара совпадал как я понял ?

Надіслати
Поділитися на інших сайтах


11 минут назад, evgeniygord сказал:

 я вот сперва  забыл, почему я изначально отказался от мобильной версии, сейчас вспомнил Фото в мобильной версии фото мелкого размера и в исходном коде нет нигде  больших
 а если я сперва спаршу всю информацию  о товаре, а потом возьму ссылки на полный сайт, получиться обновить фото ?   главное чтобы ID товара совпадал как я понял ?

Вам конечно стоит детально проверить. Но я тут немного проанализировал. 

https://cdn.fotosklad.ru/upload/iblock/81b/81b9dd4beda455a622b27852b5d4290a_thumb_4d76a05b13f4590.jpg - Большое фото
https://cdn.fotosklad.ru/upload/iblock/81b/81b9dd4beda455a622b27852b5d4290a_thumb_cad27cd9add17eb.jpg - маленькое фото

https://cdn.fotosklad.ru/upload/iblock/b23/b23a225b9ea7bfc8c3d9694c1ed9713b_thumb_4d76a05b13f4590.jpg - большое фото
https://cdn.fotosklad.ru/upload/iblock/b23/b23a225b9ea7bfc8c3d9694c1ed9713b_thumb_cad27cd9add17eb.jpg - маленькое фото

Если немного присмотреться кажется что разница между большим и маленьким фото заключается в окончании.
thumb_4d76a05b13f4590.jpg
thumb_cad27cd9add17eb.jpg


И если к полю границы парсинга фото применить правило 

3a20987a63.png.953a90a2424bbbfa2f1cc721fe19ec64.png
То все маленькие фото превратятся в большие.

Но нужно проверят на десятки а то и двух десятках товара из разных категорий. Я проверил на 5-6 товарах из разных категорий работает как часы. 
:wink:

Надіслати
Поділитися на інших сайтах

3 часа назад, Rassol2 сказал:

А именно перед именем донора добавляем букву m

:shock:

хорошая идея - надо на других сайтах попробовать, может прокатит.

спасибо.

  • +1 1
Надіслати
Поділитися на інших сайтах


1 минуту назад, stas2010 сказал:

:shock:

хорошая идея - надо на других сайтах попробовать, может прокатит.

спасибо.

Пробуйте я уже на опыте всегда пытаюсь достучатся к мобильной версии когда у меня есть проблемы с десктопной.
Причем если в нормальной версии все данные могут быть в json формате, или спрятаны под аякс запросами. То мобильной версии они в 95% случаев лежат на поверхности. 
И не требуют дополнительных обработок. Поскольку для мобильных устройств критична пропускная способность интернета, и как можно меньше тратить энергии на обработку веб страницы. Автономность, и все для нее, а заодно и для парсинга :) 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

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