|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Привет! На выходных делал приложение командной строки для сканирования сайта angel.co. Используемые технологии: java8, phantomjs, selenium, jsoup, apache cvs, apache poi. Может будет кому интересно. https://github.com/javadev/scan-angel-co С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 07:32 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Valentin KolesnikovПривет! На выходных делал приложение командной строки для сканирования сайта angel.co. Используемые технологии: java8, phantomjs, selenium, jsoup, apache cvs, apache poi. Может будет кому интересно. https://github.com/javadev/scan-angel-co С уважением, Валентин Спасибо . зы а вы все проекты одним файлом кода оформляете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 13:29 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Atum1Valentin KolesnikovПривет! На выходных делал приложение командной строки для сканирования сайта angel.co. Используемые технологии: java8, phantomjs, selenium, jsoup, apache cvs, apache poi. Может будет кому интересно. https://github.com/javadev/scan-angel-co С уважением, Валентин Спасибо . зы а вы все проекты одним файлом кода оформляете ? Пожалуйста. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 14:10 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Вот за такой ад и не любят java. Ну хоть стримы впилили и то гуд. Кстати, не понимаю семантику этого метода, но возможно тут баг Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 15:31 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
забыл ник, Тут выполняется удаление дубликатов. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 18:42 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Может я чего-то недопонял, но не проще ли было пробегать список от текущего и до конца и удалять дубликаты? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 20:26 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
HettМожет я чего-то недопонял, но не проще ли было пробегать список от текущего и до конца и удалять дубликаты? Вас только удаление дубликатов заинтересовало. Ну ок. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 20:41 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Valentin Kolesnikovзабыл ник, Тут выполняется удаление дубликатов. С уважением, Валентин Дубликатов чего? У вас настолько вложенная структура данных что я без пол-литра и не разберу.. Код: java 1.
Если вы хотите вывести список уникальных ссылок с каждой страницы, то ваш кусок логики - Код: java 1. 2. 3.
не позволит это сделать, потому что если такой же урл был на предыдущей странице, то он скипнется. Я вот это имел ввиду. А в данной имплементации у вас получается находятся все уникальные ссылки на первой странице, на второй только те что не на первой странице, на третьей -... чтопо мне нелогично, поэтому я и написал что семантика мне непонятна. Если же я прав(в чем тоже есть сомнения ибо код очевидно хитрый и может так оно и надо) - то ваш код можно сильно упрощать. В любом случае он адовый конечно.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 22:13 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
метод адовый, не весь код конечно:) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2018, 22:14 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
забыл ник, Нужно было получить уникальные записи для всех страниц а не внутри одной страницы. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 03:02 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
забыл никВот за такой ад и не любят java. Ну хоть стримы впилили и то гуд. Кстати, не понимаю семантику этого метода, но возможно тут баг Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Да. Я думаю что у нас такой код не прошел-бы code-review. Основной поинт - вложенность дженериков. Их не должно быть так много. Говоря простым языком на каждом уровне вложенности программист должен понимать "имя" той сущности с которой он работает. Если имя этой сущности "список-списков-мап-с-ключом-строка"... e.t.c. то разговаривать о таком коде становится не просто сложно а немыслимо. Как вариант можно разбить эту цепочку дженериков на вспомогательные классы, которые отражают суть решаемой проблемы. Кстати сравнительно недавно в смежном топике мы обсуждали NASA-вский документ рекомендаций по стилю кодирования и там что-то было про ограничение на количество разыменований в С. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 07:49 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
mayton, Хорошо, я переделаю. Добавлю типизированных классов и создам pull request. Сможете его проверить? С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 08:37 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 11:32 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Я сейчас со смартфона. Неудобно читать исходники. Я посмотрю вечером ваш чендж. Но если sql. Ru сообщество тоже Посмотрит то и я буду не против. В конце концов у меня не больше привилегий В вашем проекте чем у случайного прохожего. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 11:38 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Безусловно так гораздо лучше, но мне все равно непонятно почему вы упорно сопротивляетесь алгоритму "в лоб" - 1) сначала схлопываем лист листов в лист(через flatMap) 2) переопределяем equals у DataItem, чтобы сранивались по url 3) переводим list в set, так все дубликаты уйдут 4) переводим set в мап Никаких foreach, никаких мутабельных структур и тд ну и Код: java 1. 2. 3. 4. 5.
по-моему проще выглядит как Код: java 1.
Не подумайте что придираюсь, сам функционал хороший, может когда и пригодится. Надо какраз сайт один скачать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 11:55 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Нельзя схлопывать. На вход идет дерево. На выходе по протоколу тоже дерево. Возможно автору нужен итератор по урлам но это другая постановка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 12:45 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
maytonНельзя схлопывать. На вход идет дерево. На выходе по протоколу тоже дерево. Возможно автору нужен итератор по урлам но это другая постановка. Если задача такая, то можно авторзабыл ник, Нужно было получить уникальные записи для всех страниц а не внутри одной страницы. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 14:38 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
забыл никmaytonНельзя схлопывать. На вход идет дерево. На выходе по протоколу тоже дерево. Возможно автору нужен итератор по урлам но это другая постановка. Если задача такая, то можно авторзабыл ник, Нужно было получить уникальные записи для всех страниц а не внутри одной страницы. С уважением, Валентин При этом разбивка на группы должна оставаться. Результат сохраняется в нескольких файлах а не одном. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 14:50 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Валентин. 1) Твой рефакторинг полезный. Я-бы закоммитил. Сейчас в среде разработки я вижу еще старую версию и это осложняет дальнейшие улучшения. Я-бы не остановился на вложенных списках и еще разбил 2) Я обратил внимание что у тебя нет модульных тестов. Я-бы покрыл. Хотя-бы тривиальными. Чтобы проверять что рефакторинг не сломал основные утверждения. 3) Вложенные списки мне почему-то напоминают мои эксперименты с XML/XPath лет 10 назад. Подумай, если тебе надо собирать какие-то сведенья с деревьев то лучшим DSL является XPath. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2018, 22:45 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
maytonВалентин. 1) Твой рефакторинг полезный. Я-бы закоммитил. Сейчас в среде разработки я вижу еще старую версию и это осложняет дальнейшие улучшения. Я-бы не остановился на вложенных списках и еще разбил 2) Я обратил внимание что у тебя нет модульных тестов. Я-бы покрыл. Хотя-бы тривиальными. Чтобы проверять что рефакторинг не сломал основные утверждения. 3) Вложенные списки мне почему-то напоминают мои эксперименты с XML/XPath лет 10 назад. Подумай, если тебе надо собирать какие-то сведенья с деревьев то лучшим DSL является XPath. Спасибо за коментарий. Добавлю юнит тестов к проекту. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:43 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
ООП, solid, grasp - да ну нафиг. Все в один класс запихнем и на прод ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 09:53 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
ORA__SQLООП, solid, grasp - да ну нафиг. Все в один класс запихнем и на прод Там теперь есть встроенные классы и один интерфейс. С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 10:15 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
ORA__SQLООП, solid, grasp - да ну нафиг. Все в один класс запихнем и на продкто что умеет. К парсеру ООП не главное. Увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2018, 10:17 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Еще одно приложение для парсинга сайта. https://github.com/javadev/scan-google С уважением, Валентин ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2018, 14:22 |
|
Пример приложения для сканирования сайта
|
|||
---|---|---|---|
#18+
Code review point. Valentin Kolesnikov, почему в одном интерфейсе вы использовали различные способы доступа к массивам и коллекциям? Код: java 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2018, 11:52 |
|
|
start [/forum/topic.php?fid=59&msg=39639097&tid=2121937]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 491ms |
0 / 0 |