Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

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

Всем привет. Может кто подскажет, хоть примерно. Как спарсить вот это? http://nk.rossko.ru/catalog-parts/amortizator/?sid=a0469ac533e08e063cc9b36baaed5100 Шаблон ссылок очереди: /catalog-parts/, качает все подрят, а с /amortizator/ никак

Извиняюсь если что, изучаю еще. Но в перспективе, это будет шедевр а не модуль!)

У вас интересный донор. Отпишусь чуть позже. 

  • +1 1
Link to comment
Share on other sites

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

если вставлять нумерацию

Возможно я не правильно выразился.
Я имел ввиду тут нумерацию сделать
http://prntscr.com/lthelg
К примеру как в браузере  http://prntscr.com/lthexs

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

Link to comment
Share on other sites


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

Возможно я не правильно выразился.
Я имел ввиду тут нумерацию сделать
http://prntscr.com/lthelg
К примеру как в браузере  http://prntscr.com/lthexs

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

Я подумаю над этим. 
попытки сделать это уже были, скажу честно. Но та библиотека что я выбрал для подсветки синтаксиса почему то криво определяем строки. 
С этим нужно разобраться, или найти новую библиотеку которая будет отвечать всем моим требованиям 
Пример кривого вывода 
 

Спойлер

1949044347__2018-12-11_13-11-23.thumb.png.7c0f37aefa96985f87154e66c1307e37.png

 

  • +1 1
Link to comment
Share on other sites

@kikaridza123 а по поводу поиска пока что можно использовать лайф хак. 
нажимаете мышкой на блок с кодом затем crtl+f и вводите что ищите. И браузер сам автоматически провернет блок кода до первого совпадения. 

  • +1 1
Link to comment
Share on other sites

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

Всем привет. Может кто подскажет, хоть примерно. Как спарсить вот это? http://nk.rossko.ru/catalog-parts/amortizator/?sid=a0469ac533e08e063cc9b36baaed5100 Шаблон ссылок очереди: /catalog-parts/, качает все подрят, а с /amortizator/ никак

Извиняюсь если что, изучаю еще. Но в перспективе, это будет шедевр а не модуль!)

У вас сайт генерируется почти весь на JS Такие проекты парсить особенно не удобно. Здесь нужен обработчик js. 
Может что то придумаю в будущих версиях. 
 

  • +1 1
Link to comment
Share on other sites

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

 

Вставил это

<script language="javascript">
(function() {
    var pre = document.getElementsByTagName('pre'),
        pl = pre.length;
    for (var i = 0; i < pl; i++) {
        pre[i].innerHTML = '<span class="line-number"></span>' + pre[i].innerHTML + '<span class="cl"></span>';
        var num = pre[i].innerHTML.split(/\n/).length;
        for (var j = 0; j < num; j++) {
            var line_num = pre[i].getElementsByTagName('span')[0];
            line_num.innerHTML += '<span>' + (j + 1) + '</span>';
        }
    }
})();
</script>
Спойлер
<style type="text/css">
     {
  background-color:white;
  padding:50px 50px;
}

pre {
  background-color:#eee;
  overflow:auto;
  margin:0 0 1em;
  padding:.5em 1em;
}

pre code, pre .line-number {
  font:normal normal 12px/14px "Courier New",Courier,Monospace;
  color:black;
  display:block;
}

pre .line-number {
  float:left;
  margin:0 1em 0 -1em;
  border-right:1px solid;
  text-align:right;
}

pre .line-number span {
  display:block;
  padding:0 .5em 0 1em;
}

pre .cl {
  display:block;
  clear:both;
}
</style>

 

Но нумерация только до 345 номера,
дальше не работает.

Link to comment
Share on other sites


15 минут назад, kikaridza123 сказал:

Вставил это

<script language="javascript">
(function() {
    var pre = document.getElementsByTagName('pre'),
        pl = pre.length;
    for (var i = 0; i < pl; i++) {
        pre[i].innerHTML = '<span class="line-number"></span>' + pre[i].innerHTML + '<span class="cl"></span>';
        var num = pre[i].innerHTML.split(/\n/).length;
        for (var j = 0; j < num; j++) {
            var line_num = pre[i].getElementsByTagName('span')[0];
            line_num.innerHTML += '<span>' + (j + 1) + '</span>';
        }
    }
})();
</script>
  Скрыть контент

<style type="text/css">
     {
  background-color:white;
  padding:50px 50px;
}

pre {
  background-color:#eee;
  overflow:auto;
  margin:0 0 1em;
  padding:.5em 1em;
}

pre code, pre .line-number {
  font:normal normal 12px/14px "Courier New",Courier,Monospace;
  color:black;
  display:block;
}

pre .line-number {
  float:left;
  margin:0 1em 0 -1em;
  border-right:1px solid;
  text-align:right;
}

pre .line-number span {
  display:block;
  padding:0 .5em 0 1em;
}

pre .cl {
  display:block;
  clear:both;
}
</style>

 

Но нумерация только до 345 номера,
дальше не работает.

У меня так все нумеруется кроме последних строк 20.
Но стиле слетают у сайта. 
 

Нужно будет проработать это все.
Я просто не селен в js как говорится от слова ВООБШЕ.

Но это на состояние 2018.12.11 14:19 будем развиваться )))

  • +1 2
Link to comment
Share on other sites

Вообще сейчас в мыслях такой порядок действий. 

1. Привести в порядок вкладку сбор ссылок. (Эта вкладка ужасно работает.)
2. Придумать систему отчетов. 
3. Использовать cURL (Да да я знаю что file_get_content это не серьезно. Но я не был уверен что этот модуль вообще кого либо заинтересует. )
4. Повторяющие границы парсинга.
5. Поиск замена. 
6. Встроенные макросы. 

 

  • +1 1
Link to comment
Share on other sites

Еше хотел спросить как обстоят дела с пониманием модуля ? 
Поскольку я помню историю модуля "Парсер паук" где все кричали что ничего не ясно, а разработчики не выкатывали инструкцию.
Я тоже не ставлю инструкцию на первый план. Но если есть недопонимания может мне стоит поменять свои планы ?

Link to comment
Share on other sites

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

У вас сайт генерируется почти весь на JS Такие проекты парсить особенно не удобно. Здесь нужен обработчик js. 
Может что то придумаю в будущих версиях. 
 

Спасибо. Думаю многие могут столкнуться с подобными сайтами, так что мы с вами! )

  • +1 1
Link to comment
Share on other sites


22 часа назад, kikaridza123 сказал:

2.Добавить по умолчанию в CSV файл ссылки с которой идет парсинг, если они уже есть собранные чтоб не добавлять новый параметр и парсить отдельно ссылки)
Например для последующего парсинга и обновления цены через АОП.

Все же я посчитал эту функцию крайне необходимой для модуля который парсить все в CSV файл. :rolleyes:

Сегодня выложил обновление 1.0.2 В нем реализовано. 
Для обновления заливаете файлы по верх с заменой. И обязательно выполняете inst.php

Я решил этот вопрос так. 
По умолчанию теперь всегда есть псевдо граница Ссылки
Псевдо потому что она ничего не парсит, а просто записывает в выбранную колонку ссылку по которой идет парсинг. 
url.thumb.png.6080d0c74350ab233da7a4e1f6ef0737.png

Теперь можно формировать прайс с указанием ссылок на страницу, что сделает готовый прайсы еше более подходящими для дальнейшей обработки через АОП

То есть можно не только в начало добавить, а как угодно. 
url1.thumb.png.7c66fa0b26eb2b6ff36bf4dc665c8b32.png

И сколько угодно раз. 

К примеру так.
20d680a902.thumb.png.b9cc7825b3e7f8636bb1e7074390cd59.png

Ну и на выходе можно добиться получения вот такого прайса. 
price_url.csv

Владельцы модуля АОП должны оценить. 


 

  • +1 2
Link to comment
Share on other sites

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

будем развиваться )))

Попробовал так.
Перед 
 

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

Вставил
 

<style>
li.L0, li.L1, li.L2, li.L3,
li.L5, li.L6, li.L7, li.L8
{ list-style-type: decimal !important }
</style>

Сюда добавил класс linenums

<code class="prettyprint linenums">'.$page_code.'</code>

У меня это так выглядит http://prntscr.com/ltx6nd 

  • +1 1
Link to comment
Share on other sites


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

Я ещё предыдущий релиз не успел затестить, а тут уже новая версия! Прямо стахановские темпы :-)

Я выкатил глобальное обновление, а теперь только мелочи правлю. 
Так сказать версия 1.0 базовая сейчас и сверху могу править ошибки или допиливаю. Это кажется что сильно быстро. 
А по факту не сильно )))

Link to comment
Share on other sites

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

Попробовал так.
Перед 
 

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

Вставил
 

<style>
li.L0, li.L1, li.L2, li.L3,
li.L5, li.L6, li.L7, li.L8
{ list-style-type: decimal !important }
</style>

Сюда добавил класс linenums

<code class="prettyprint linenums">'.$page_code.'</code>

У меня это так выглядит http://prntscr.com/ltx6nd 

Добавил у себя. 
Пару дней пусть так поработает понаблюдаю на разных сайта. Если проблем не будет добавлю в следующий релиз. 

Link to comment
Share on other sites

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

 

С момента запуска пошел 3 день кажется
58500 ссылок собрано

но думаю хостинг скоро заблокирует мой эксперимент.
Сегодня 227% от лимита нагрузки на БД
http://prntscr.com/lubyuc
Вчера было 117%
 

Screenshot_23.jpg

Edited by kikaridza123
Link to comment
Share on other sites


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

С момента запуска пошел 3 день кажется
58500 ссылок собрано

но думаю хостинг скоро заблокирует мой эксперимент.
Сегодня 227% от лимита нагрузки на БД
http://prntscr.com/lubyuc
Вчера было 117%
 

Screenshot_23.jpg

ну значит ограничение точно на время выполнения я точно обошел. 

А может вы уточнение сделаете в поиске ссылок ? 

Link to comment
Share on other sites

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

С момента запуска пошел 3 день кажется
58500 ссылок собрано

но думаю хостинг скоро заблокирует мой эксперимент.
Сегодня 227% от лимита нагрузки на БД
http://prntscr.com/lubyuc
Вчера было 117%
 

Screenshot_23.jpg

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

Link to comment
Share on other sites

54 минуты назад, kikaridza123 сказал:

http://prntscr.com/luev72 
вот мои настройки, возможно я и не правильно их задал.
но вроде сканирует правильно.

Я так понимаю вам нужно собрать ссылки содержащие /routes/
Такие ссылки я нашел только на 2 типах страни.
Страницы стран и страницы городов

то есть /routes/ может быть только когда вы выбрали с какой страны, или с какого города. 
Значит в очереди сканирования нужно уточнить что нам нужны только ссылки содержащие.
/cities/
/countries/


перед тем как это делать остановите сканирования.
Скопите в текстовый файл ссылки очереди сканирования. И ссылки выдачи. В отдельные файлы так сказать забекапте.

Затем в поле http://joxi.ru/V2VLx6QIdxvvdr вставьте 
/cities/
/countries/


нажмите сохранить. 
http://joxi.ru/xAeDpyzuRpll62

и после этого попробуйте сузить список очереди.
http://joxi.ru/DrlowK5fVv33xA

Это уберет из очереди сканирования  все ссылки что не содержат в себе 
/cities/
/countries/

Значит скорее всего там нету /routes/
И их просматривать не нужно. 

и нажимайте старт. 

Думаю с работает. 

Link to comment
Share on other sites

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

http://prntscr.com/luev72 
вот мои настройки, возможно я и не правильно их задал.
но вроде сканирует правильно.

ваги настройки оставляете просто дописываете в поле 
Шаблон ссылок очереди

Link to comment
Share on other sites

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

ваги настройки оставляете просто дописываете в поле 
Шаблон ссылок очереди

Да, так и в правду кол-во ссылок в очереди сократилось на много http://prntscr.com/lugq1j
А какое-то уведомление типа ( хозяин, я завершил сбор ссылок) показывает модуль?
Как понять что все-таки он завершил работу?

 

  • +1 1
Link to comment
Share on other sites


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

Да, так и в правду кол-во ссылок в очереди сократилось на много http://prntscr.com/lugq1j
А какое-то уведомление типа ( хозяин, я завершил сбор ссылок) показывает модуль?
Как понять что все-таки он завершил работу?

 

да будет. 
Уведомлении. И сбор остановится. 
С этим проблем нету. 

Link to comment
Share on other sites

Добрый вечер.

 

Огромное спасибо за столь архиполезную программу.

 

Как мне кажется я нашёл способ, как на порядок увеличить скорость нахождения ссылок. Т.е. уменьшить холостой пробег на поиск и перебор не нужных ссылок и плюс не нагружать сайт донора.

 

Сейчас построено всё на логике, что мы даём "Стартовая ссылка", например site.ru/category/ и в "Шаблон ссылок очереди" помещвем, например, подкаталоги /parent_category_1/,/parent_category_2/.../parent_category_20/. Пробовал такой способ и при наличии у донора количества категорий несколько сотен получаем десятки тысяч ссылок... что требует массу времени и перебора 90% ненужного, если у нас задача скачать не всё, а выборочно подкатегории. Зато получаем автоматизм без ручного вмешательства.
Более перспективный вариант - скармливать каждый раз стартовой странице ссылку типа site.ru/category/parent_category_[n]/. Количество ссылок резко уменьшается за счёт отсечения не нужных путей. Но теряем на автоматизме, поскольку каждый раз нужно вводить новые ссылку типа site.ru/category/parent_category_[n]/ и шаблон типа /parent_category_[n]/. Если количество подкаталогов, которые необходимо быстро спарсить - пару десятков, то это уже много ручной монотонной работы.

 

Поэтому предлагаю сделать конвеер, в котором после отработки одной ссылки будет подхватываться новая стартовая ссылка и новые шаблоны. Т.е. как только получаем "готово" после обработки первой стартовой, сразу за ней автоматически подгружается вторая, третья... двадцатая. Вписывать можно построчно как на странице самой программы, так и вынести в отдельный файл. При этом можно сделать на странице выбор, откуда брать Стартовую, с того места, где она сейчас (по умолчанию, например) или с внешнего источника.

 

Благодарю.

Link to comment
Share on other sites


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

Поэтому предлагаю сделать конвеер, в котором после отработки одной ссылки будет подхватываться новая стартовая ссылка и новые шаблоны. Т.е. как только получаем "готово" после обработки первой стартовой, сразу за ней автоматически подгружается вторая, третья... двадцатая. Вписывать можно построчно как на странице самой программы, так и вынести в отдельный файл. При этом можно сделать на странице выбор, откуда брать Стартовую, с того места, где она сейчас (по умолчанию, например) или с внешнего источника.

Спасибо за ваше предложение. 

Есть пару моментов. 
На данном этапе модуля внесення таких правок сильно усложнит разработку модуля. Возможно в будущем сделаю макрос на это дело. 
/parent_category_[n]/

Но не сейчас.
Сейчас могу предложить другой вариант он появится следующем мелком обновлении.

Я добавлю возможность напрямую вписывать ссылки что у вас уже есть. 
f58aa0900d.thumb.png.a99a808b90ce73ffbdbbf8c40a287e62.png

По принципу как сделано на этой вкладке. 
  

8e2abfa9f8.thumb.png.953b17b626138ea7682a82179f0e1f01.png

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

Что бы реализовать то что вы описали, нужно будет воспользоватся экселем и сгенерировать там ссылки что вам нужны 
1508803386__2018-12-13_18-56-19.png.26b5bc5c1bb9e7c9c1789278efa370ad.png

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

И нажать старт, и модуль не будет обращаться к стартовой ссылке а начнет перебор непосредственно с ссылок очереди.

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

 

Edited by Rassol2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.