|
|
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, нужно написать тестовое задание, а я что-то в примерах встречаю только работу с библиотеками-парсерами. Подскажите из чего начать, где почитать, как это вообще делать с помощью только того что предлагает jdk? Краткая суть - нужно полезть на веб страничку и оттуда достать все url, потому взять эти url и опять полезть в них и так пока не наберется первая 1000 урлов. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 15:18 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
Парсить, скорее всего, удобно через State Machine Вот тут толково описано http://wickedsource.org/2013/11/19/state-machine-with-java/ А вот пример гуглиться с пол пинка. https://www.google.com/search?q=HTMLLinkExtractor.java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 15:31 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
_webdev_, 1. Гуглишь regexp на предмет url (можешь с добавкой href=) и как из java считать страничку. 2. Придумываешь мапу в которой по нормализованному url сохраняется ее текст. И очередь страничек на анализ. 3. Считываешь первую страничку. Вытаскиваешь ссылки. 4. Нормализуешь их (большие-маленькие прибавка от первоначальной страницы) 5. Если в мапе пусто - загружаешь страничку по url, записываешь в мапу и ставишь в очередь на анализ. 6. goto 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 15:33 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
спасибо, почитаю и попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 16:42 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
_webdev_Здравствуйте, нужно написать тестовое задание, а я что-то в примерах встречаю только работу с библиотеками-парсерами. Подскажите из чего начать, где почитать, как это вообще делать с помощью только того что предлагает jdk? Краткая суть - нужно полезть на веб страничку и оттуда достать все url, потому взять эти url и опять полезть в них и так пока не наберется первая 1000 урлов. Спасибо. По поводу 1000 урлов. Тут регулировка нужна. Например делать больше "поиск в ширину" чем в глубину. И фильтровать ссылки повторы чтобы краулер повторно не бегал в те узлы где уже побывал. Плюс урлы должны быть селективны. Например урл документа и урл того-же самого документа с printview=yes нужно нормализовывать и игнорить. Плюс фильтровал урлы на картинки. Плюс фильтровать урлы на баннерные сети. Да много еще чего накрутить. Плюс эмулировать jscript по возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 17:01 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
mayton, Да, я понимаю о чем вы. Но это просто небольшое тестовое задание. В котором не было этих условий. Ну вот я и наваял, читаю с одного сайта линки, потом по очереди, начиная с первого. Опять же, понятное дело, что если есть конкретные условия, то да. Ну вот условия. авторPlease send us the Java source code for a crawler which - fetches the content for a given start URL - extracts the links from the content. - goes on to crawl the extracted links (back to step 1) - the crawler should stop after 1000 found URLs Please use only stuff which is already provided by the JDK. ну и вот, если кому будет интересно мой примитивный crawler с коленки. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 23:00 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
_webdev_, while (true) без break внутри - нечитаемо тот же самый system.exit(0) и у вас finally не выполнится. поиск/добавление ссылок и их распечатка в stoud перемешаны regexp какой-то слишком, можно было бы самому написать, и для 90% случаев подошел бы. я не нашел проверки на однаковые ссылки при добавлении (вместо списка сделать множество как вариант) вместо списка возможно было бы сделать более лаконично через очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 00:37 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
no56892_webdev_, while (true) без break внутри - нечитаемо тот же самый system.exit(0) и у вас finally не выполнится. поиск/добавление ссылок и их распечатка в stoud перемешаны regexp какой-то слишком, можно было бы самому написать, и для 90% случаев подошел бы. я не нашел проверки на однаковые ссылки при добавлении (вместо списка сделать множество как вариант) вместо списка возможно было бы сделать более лаконично через очередь. интересные замечания. - да, и куда вы предложите его всунуть? Он по ходу никогда не сработает. - вот это правильно подметили перенес System.exit(0); в finally. - распечатку вынес в finally. также - вынужден согласиться, сейчас некогда самому кумекать, да и пишу я их редко, так что пришлось бы посидеть немножко. - Множество? Не сориентируете на нужную структуру данных? HashSet, TreeSet? Где-то читал о разнице, но уже и не вспомню. - вы имеете в виду queue? Чем же она лаконичней? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 01:07 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
regexp какой-то странный. Зачем там "www." непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 01:10 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
maytonregexp какой-то странный. Зачем там "www." непонятно. - написал выше, чтоб сейас колдовать regexp нету времени, нашел на просторах такой. )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 09:26 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
у Шилдта целая глава посвящена веб-краулеру http://www.jamesholmes.com/TheArtOfJava/ Там можно скачать как текст так и исходники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 10:37 |
|
||
|
web crawler on pure Java?
|
|||
|---|---|---|---|
|
#18+
забыл нику Шилдта целая глава посвящена веб-краулеру http://www.jamesholmes.com/TheArtOfJava/ Там можно скачать как текст так и исходники fixxer Пример из книги Algorithms of the Intelligent Web (есть перевод ) - спасибо большое, но это небольшое тестовое задание, которое мне нужно отправить на фирму, и не думаю, что это будет хороший ход, скопировать или хотя бы частично скопировать из книги. Что придумал, то придумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:14 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38662194&tid=2127092]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
199ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 538ms |

| 0 / 0 |
