На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Получение информации о саите
    Для соединения с саитом можно просто создать обьект URL и URLConnection.
    А какие запросы надо реализовать, что бы получить список всех страниц(адреса) и их размер на этом саите?
      Просто так этого не сделать. Полного списка страниц на сайтах обычно не выкладывают. Нужно писать бота-"паука", который будет закачивать страницу, искать на ней ссылки, анализировать их и рекурсивно переходить на новые страницы.
        А для поиска ссылок, что всю страничку надо качать?
          Цитата Крон @
          А для поиска ссылок, что всю страничку надо качать?

          Да
            это ж наверное получится долго и трафа много уйдет?
            Входной поток с помощью .getInputStream это и есть страничка?
            Сообщение отредактировано: Крон -
              Цитата Крон @
              Входной поток с помощью .getInputStream это и есть страничка?

              Да.
                Цитата Крон @
                это ж наверное получится долго и трафа много уйдет?

                Без сомнения. Я никогда и не видел быстрого веб-граббера.
                  а размер странички как получить?
                  Сообщение отредактировано: Крон -
                    ExpandedWrap disabled
                      url.openConnection().getContentLength()

                    Поток потом получать из URLConnection. Но этот способ не всегда будет работать - некоторые сервера могут давать информации о размере.
                      Цитата Крон @
                      а размер странички как получить?
                      GetContentLength()?

                      Полагаю, что можно и из него, но надо учитывать, что этот метод возвращет значение HTTP-заголовка Content-Length, а не реальный размер. Поэтому может быть несовпадение.
                        Не если искать ссылки просто и рекурсивно в них входить, то получится переход и ина др. ресурс, ведь?
                        А нодо вель только странички этого саита.
                          Цитата Крон @
                          А нодо вель только странички этого саита.

                          Так вы проверяйте ссылки.
                            Вы не могли бы пример соединения написать и получения первой ссылки
                              Пример чтения есть тут: http://java.sun.com/docs/books/tutorial/ne...ingWriting.html

                              Парсинг на предмет ссылок можно либо выполнять вручную, либо поискать готовые библиотеки. Название не помню, но такие точно есть (что-то вроде HTMLParser).
                                А как можно проверить ссылки?
                                Т.е. есть массив УРЛэвов, и еще один УРЛ.
                                Что бы проверить ссылка ли это на внутрении ресурс надо проверить начинается ли каждый из элементов массива с главного УРЛ?
                                А как это реализовать можно? В строку же конвертировать нельзя?
                                  Что именно нельзя конвертировать в строку? Как-то не верится.

                                  Ссылка на внутренний ресурс скорее всего будет либо начинаться с того же имени домена, либо вообще будет относительной (без указания домена). Исключения составляют мегапорталы, распределенные по нескольким доменам, но такие ты навряд ли станешь выкачивать.
                                    Цитата batigoal @
                                    Что именно нельзя конвертировать в строку? Как-то не верится.

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

                                    Можно воспользоваться классом URI. URL переводишь в URI, парсишь по зонам и уже сравниваешь зоны. Может быть поможет.
                                      А можно ли соединится с ресурсом расположенном локально на этой же машиине через URL обьект?
                                      Что то типа getCodeBase что ли?
                                      Сообщение отредактировано: Крон -
                                        Цитата Крон @
                                        А можно ли соединится с ресурсом расположенном локально на этой же машиине через URL обьект?

                                        Можно.

                                        Цитата Крон @
                                        Что то типа getCodeBase что ли?

                                        URL.getProtocol(), URL.getHost(), URL.getPort()
                                          Цитата wind @
                                          ExpandedWrap disabled
                                            url.openConnection().getContentLength()

                                          Поток потом получать из URLConnection. Но этот способ не всегда будет работать - некоторые сервера могут давать информации о размере.

                                          А если ответ не предусмотрен сервером, то как еще можно размер узнать?
                                          Считать число символов что ли?
                                          Сообщение отредактировано: Крон -
                                            Цитата Крон @
                                            А если ответ не предусмотрен сервером, то как еще можно размер узнать?

                                            Только полностью загрузив данные.
                                            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                            0 пользователей:


                                            Рейтинг@Mail.ru
                                            [ Script execution time: 0,0457 ]   [ 14 queries used ]   [ Generated: 19.05.24, 08:51 GMT ]