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

Recommended Posts

Попытался начать парсинг новая ошибка CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in /var/www/p140531/data/мой_сайт/admin/model/catalog/simplepars.php on line 906Notice: Undefined offset: 1 in /var/www/p140531/data/www/мой_сайт/admin/model/catalog/simplepars.php on line 432

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


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

Попытался начать парсинг новая ошибка CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in /var/www/p140531/data/мой_сайт/admin/model/catalog/simplepars.php on line 906Notice: Undefined offset: 1 in /var/www/p140531/data/www/мой_сайт/admin/model/catalog/simplepars.php on line 432

Закомментируйте строку 906 в 

/var/www/p140531/data/мой_сайт/admin/model/catalog/simplepars.php

А именно вот эту строку
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
Поменяйте на эту
      #curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам

и должно ботать. 

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

21 час назад, Vladislavchik1989 сказал:

ну первую ошибку закомментировал - пропала, а эта 


Undefined offset: 1 in /var/www/p140531/data/www/мой_сайт/admin/model/catalog/simplepars.php on line 432 

так и осталась

Эта ошибка связана с тем что вы нажали пред просмотр но не указали параметры пред просмотра. 
К пример http://joxi.ru/v29P0RjsZZBo1m

Будет исправлено в следующей версии.

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

Сайты всё больше защищаются от парсинга ) Я когда-то предложил @usergio сделать рандомную задержу и он это сделал в модуле АОП, спасибо ему за труды. Предлагаю и Вам сделать подобное. Например: галочка возле выбора паузы "Randomize". Поставил галку и уже выбор паузы идёт автоматом в указанных пределах ) Но и это ещё не всё... рекомендую кроме этого реализовать что-то типа "Задержки парсинга". Т.е. чтобы парсинг переходил в спящий режим через указанный промежуток времени (он уже в отличие от паузы должен исчисляться не секундами, а десятками минут!). Думаю, что это очень сильно поставит в тупик "антиботы" сайтов...

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


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

Сайты всё больше защищаются от парсинга ) Я когда-то предложил @usergio сделать рандомную задержу и он это сделал в модуле АОП, спасибо ему за труды. Предлагаю и Вам сделать подобное. Например: галочка возле выбора паузы "Randomize". Поставил галку и уже выбор паузы идёт автоматом в указанных пределах ) Но и это ещё не всё... рекомендую кроме этого реализовать что-то типа "Задержки парсинга". Т.е. чтобы парсинг переходил в спящий режим через указанный промежуток времени (он уже в отличие от паузы должен исчисляться не секундами, а десятками минут!). Думаю, что это очень сильно поставит в тупик "антиботы" сайтов...

Тогда еше нужно добавит изменение user agent  

А вообще да сделать рандомную паузу это несложно. Реализую в будущем.  Запишу в список хотелок. 

А вот задержка паузы наверное не буду делать. Объясню почему.
Человек сидит перед экраном и запускает парсинг контролирует останавливает смотрит и так далее. 
А вот если сделать функцию задержки тогда я должен предположить что человек все настроил запустил парсинг указал задержку и ушел. То есть парсинг большого объема на протяжении длительного времени. Вот под эту задачу я выведу крон. 
Когда у вас все готово все настроено вы можете добавить задачу cron и уйти. А вот уже в настройках крона будет балансироваться все задержки. 
И при таком решении можно спокойно работать с сайтом над другими задачами. 

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

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

Тогда ещё хотелка - проверка работы самого парсера, не "спит" ли он. Иногда приходится нажимать "Обновить страницу", чтобы парсинг продолжился... а был однажды сайт, для которого пришлось делать даже скрипт-нажималку на "перегрузить" потому, что буквально пару товаров и подвисание... только постоянный перегруз и помогал, а товаров там было пару тысяч, а сидеть и нажимать на кнопку самому - это уже уход от автоматизма и переход на ручное управление... теряется время на монотонную рутинную работу (

 

P.S. Тогда необходимо определиться, какое время считать неприлично долгим и зависанием в работе парсера...

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


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

Тогда ещё хотелка - проверка работы самого парсера, не "спит" ли он. Иногда приходится нажимать "Обновить страницу", чтобы парсинг продолжился... а был однажды сайт, для которого пришлось делать даже скрипт-нажималку на "перегрузить" потому, что буквально пару товаров и подвисание... только постоянный перегруз и помогал, а товаров там было пару тысяч, а сидеть и нажимать на кнопку самому - это уже уход от автоматизма и переход на ручное управление... теряется время на монотонную рутинную работу (

это у моего модуля такое было ? 

По сути изначально я так и сделал.  Вы нажали кнопку старт  а дальше следующий сценарий. 

1. Браузер отправляет запрос который звучит так.
Проверь есть ссылки на парсинг, если да то возьми одну ссылку и спарси. И напиши ответ играем дальше. 


2. Получив ответ играем дальше браузер опять посылает запрос и говорит посмотри есть ссылки на парсинг, если да то спарси одну и отдай ответ играем дальше. А если ссылок в очереди нет отдай ответ финиш.


3. Получил браузер ответ финиш написал вам парсинг окончен. О перекатить посылать запросы. 

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

Ссылки то были, но сам парсинг не шёл до тех пор, пока не нажать "Обновить страницу". Просто был режим простоя, ожидания чего-то... И сегодня снова остановился на парсинге одного сайта на средине и пришлось давать пинок )

Сейчас снова проверил на том же сайте - опять останавливается и нужно обновляться... (

 

2019-01-19 19:09:53| Парсинг : УСПЕШНЫЙ ЗАПРОС Код ответа [200] Ссылка | https://biotus.com.ua/pangamovaja-kislota-vitamin-v15-cyto-pharma-100-kapsul.html
2019-01-19 19:12:08| Парсинг : УСПЕШНЫЙ ЗАПРОС Код ответа [200] Ссылка | https://biotus.com.ua/vitamin-v17-amygdalin-100-mg-100-tabletok.html

Разницу по времени посмотрите... это подвисание и перегруз вручную...

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


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

Ссылки то были, но сам парсинг не шёл до тех пор, пока не нажать "Обновить страницу". Просто был режим простоя, ожидания чего-то... И сегодня снова остановился на парсинге одного сайта на средине и пришлось давать пинок )

Значит где то была ошибка.
К сожалению пока все сценарии не отработаны. 

По сути сейчас работает как я написал. Работа не должна прерываться. 
Остановка парсинг может происходить только по 4 причинам. 

1. Завис браузер.
2. Сбой на сервере где стоит сайт.
3. Вы нажали стоп. 
4. Ошибка в парсинге, Или в модуле короче какая то ошибка. 

Первые 2 редко. Причина 3 понятное дело.
А вот над четвертой есть индикатор как понять завис модуль или нет. 
Если нажать в браузере во время парсинга f12 и перейти в раздел консоль вы увидите вот такое. 
819464783__2019-01-19_18-09-31.thumb.png.9f3abc7335b83f3886e3c9fd62795882.png

 

Но если в консоли будет ошибка много красного. (Как нибудь сделаю скрин. ) Это значит что вы попали на ошибку и нужно перезапустить. 
Ну и понятное дело желательно разобраться мне в чем причина что бы исправить недочет. 

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

Кстати наверное стоит все ошибку из консоли выводить в модуле что бы было видно что произошёл сбой. Подумаю над этим тоже. 

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

Благодарю за ответы и за труды Ваши )

 

Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data[Подробнее]  jquery-2.1.1.min.js:4:5304

Консоль на задержке...

Змінено користувачем Axelenz
Надіслати
Поділитися на інших сайтах


Только что, Axelenz сказал:

Благодарю за ответы и за труды Ваши )

не за что. 

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

И ещё из области хотелок...

Можно в excel настругать ссылок поиска товара типа: сайт + код товара, например вот такого плана

https://usavitamines.com/catalog/search/?q=CLF-08192

а модуль всё это преобразует каким-то чудесным образом в прямые ссылки на товар... как-то так:

 

https://usavitamines.com/vitaminy-dlya-zhenshchin-multivitamins-country-life-60-tabletok-clf-08192/

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

Это, чтобы не сканировать весь сайт, если на нём десятки тысяч товаров, а указать только необходимые.

 

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

Ответ: да потому, что не всегда это так однозначно красиво на практике...не все ссылки составлены по этой логике, но по коду находятся все...

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


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

И ещё из области хотелок...

Можно в excel настругать ссылок поиска товара типа: сайт + код товара, например вот такого плана


https://usavitamines.com/catalog/search/?q=CLF-08192

а модуль всё это преобразует каким-то чудесным образом в прямые ссылки на товар... как-то так:

 


https://usavitamines.com/vitaminy-dlya-zhenshchin-multivitamins-country-life-60-tabletok-clf-08192/

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

Это, чтобы не сканировать весь сайт, если на нём десятки тысяч товаров, а указать только необходимые.

 

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

Ответ: да потому, что не всегда это так однозначно красиво на практике...не все ссылки составлены по этой логике, но по коду находятся все...

уже реализовано. 

Описываю как добится этого. 
Берете ссылки с экселя. Далее записываете их в ссылки парсинга. 
http://joxi.ru/DrlowK5fVVPYKA

далее настраиваем границу парсинга на вот эту область страницы 
http://joxi.ru/vAWKkW6UggWplA

затем настраиваете повторяющую границу парсинга на на получение каждой ссылки товара по отдельности.
http://joxi.ru/l2ZR7Kafzz4KB2
в настройка повторяющей границы это будет выглядеть так.
http://joxi.ru/8Ano4aLfzzlY6r
В блоке с кодом вы видите что мы получили.
Разделитель {csvnl} говорит о том что что каждая итерация должна быть записана с новой строки. 
Затем в поиск замена записываем 
http://joxi.ru/EA4zJd7sooWbnm

И вот результат.
44198e62f3.thumb.png.accbafaa023eae3dbaaaa2eead492a36.png

Теперь о грустном, я это сделал но в релиз 1.3.1 это не попало. 
Если кому то нужно я скину файлы. Выйдет в следующих релизах. 
Поскольку модуль бесплатный я над ним могу работать только в свободное время. А я сейчас на 6 недель записался на курсы и каждый день по 4-5 часов я сижу за партой. Остальную часть времени я уделяю семье и работе. А то можно и с голодухи умереть )))
Так что ближайшие дни выкачу инструкцию хоть какую то и обновления модуля будут пока редко выходить. 

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

Да как вы наверное поняли после парсинга модуль даст вам эксель файл где в столбик прописаны все url товаров которые были найдены по вашим ссылкам. 
Эти ссылки будут уже непосредственно на сам товар. 

1917029444__2019-01-21_16-34-29.png.f02f463f554c031c26dfef1d34fdd390.png

 

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

В 19.01.2019 в 18:35, Axelenz сказал:

Благодарю за ответы и за труды Ваши )

 


Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
Object { status: "go", msg: "Производится парсинг", other: Object }  index.php:1135:21
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data[Подробнее]  jquery-2.1.1.min.js:4:5304

Консоль на задержке...

Вот это уже какая то ошибка. Нужно искать что ее вызывает. 
Но к сожалению я сейчас невероятно сильно ограничен в Онлайне :( 

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

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

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


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

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

не за что. 

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

Подскажите, а возможно ли обходить каптчу при данном функционале модуля ? Перепробовал автоматические перегрузчики user agent, прокси - не помогает ) Даёт спарсить определённое количество товара и выходит на каптчу... (

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


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

Подскажите, а возможно ли обходить каптчу при данном функционале модуля ? Перепробовал автоматические перегрузчики user agent, прокси - не помогает ) Даёт спарсить определённое количество товара и выходит на каптчу... (

нет модуль капчу обойти не сможет. Есть идея как сделать прокси но для этого нужо время. 
А пока его 0. 

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

Новости.

Давно не выходят обновления это связано с тем что я сейчас занят на 110% и на модуль почти нету времени. Хотя идеи появляются каждый день. 

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

Встречайте инструкция к модулю версия 0.01 https://simplepars.top/

Надеюсь это вам тоже будет полезно, и я не зря потратил все это время. :oops:

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

Благодарю за потраченное время.

Модуль не раз помогал в парсинге. Жаль, конечно, что у Вас нет времени на его дальнейшее развитие в плане более универсального парсера, которому под силу сложные защищающиеся сайты (

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


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

Благодарю за потраченное время.

Модуль не раз помогал в парсинге. Жаль, конечно, что у Вас нет времени на его дальнейшее развитие в плане более универсального парсера, которому под силу сложные защищающиеся сайты (

всему свое время. 
Есть мысли перевести модуль на платную основу. И тогда заниматься его развитием в плотную. 
Модуль пялится постоянно просто релизы делать реже. 
Вот в декабре не было заказов и я с утра до вечера пилил модуль, и выходили релизы. Сейчас у меня каждый день в будни выпадает по 5-6 часов на курсы. Остальное время трачу на семью и обшение/заказы. А ночью могу что то пописать в модуле. В таком случаи обобьем выполняемой работы гораздо меньше. 

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

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

установил вродь всё по инструкции но при обращении к модулю ошибка 500

в логах написало ошибка в строке 190 


model/catalog/simplepars.php on line 190

 

можно подробнее что за ошибка у вас ? 
у меня в строке 190 комментарий.
Конкретнее что за ошибка. 

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

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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