Перейти к содержимому

Фотография

Как прочитать все ссылки на сайте


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 28 июля 2011 - 08:16

Здравствуйте, как можно получить масив всех ссылок сайта? Использую Эклипс + Селениум 2 + Джава. Если что неточно описал - поправьте пожалуйста
  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 28 июля 2011 - 09:48

Если вам нужен именно результат, то можно воспользоваться, например, xenu link checker.
Кроме проверки ссылок на валидность он составляет и карту сайта со всеми ссылками.
  • 0

#3 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 28 июля 2011 - 09:54

спасибо, я посмотрю
  • 0

#4 Dary

Dary

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 28 июля 2011 - 11:45

как на сайте прочитать вам ответили выше,
а на отдельно взятой страничке это можно сделать вот так:
String Attribute;
String[] links = sel.getAllLinks();                 // Ищем все ссылки на странице, их почему-то на 1 меньше
int link_num = links.length-1;
 for (int i = 0; i < link_num; i++) {
 try{	 
	Attribute=sel.getAttribute(nameLink1 + "@href" );         // ищем ссылку
     } catch (Exception e1) { continue; }
...

}

  • 0

#5 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 28 июля 2011 - 12:10

как на сайте прочитать вам ответили выше,
а на отдельно взятой страничке это можно сделать вот так:

String Attribute;
String[] links = sel.getAllLinks();                 // Ищем все ссылки на странице, их почему-то на 1 меньше
int link_num = links.length-1;
 for (int i = 0; i < link_num; i++) {
 try{	 
	Attribute=sel.getAttribute(nameLink1 + "@href" );         // ищем ссылку
     } catch (Exception e1) { continue; }
...

}

спасибо, но не могу разобраться с кодом :blush:
1. Получаем ID всех ссылок
2. Делаем переменную на 1 меньше, чем количество ссылок
3. Создаём перебор
4. Attribute=sel.getAttribute(nameLink1 + "@href" ); а этого я не понял :cray:
  • 0

#6 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 28 июля 2011 - 12:42


как на сайте прочитать вам ответили выше,
а на отдельно взятой страничке это можно сделать вот так:

String Attribute;
String[] links = sel.getAllLinks();                 // Ищем все ссылки на странице, их почему-то на 1 меньше
int link_num = links.length-1;
 for (int i = 0; i < link_num; i++) {
 try{	 
	Attribute=sel.getAttribute(nameLink1 + "@href" );         // ищем ссылку
     } catch (Exception e1) { continue; }
...

}

спасибо, но не могу разобраться с кодом :blush:
1. Получаем ID всех ссылок
2. Делаем переменную на 1 меньше, чем количество ссылок
3. Создаём перебор
4. Attribute=sel.getAttribute(nameLink1 + "@href" ); а этого я не понял :cray:


int link_num = links.length-1;
- ээм.. вот это делать в данном случае не нужно, т.к. далее неравенство у нас строгое:
for (int i = 0; i < link_num; i++)
и последняя ссылка в таком случае не будет сохранена.

Attribute=sel.getAttribute(nameLink1 + "@href" );
- вместо nameLink1, подозреваю, должно быть links[i]
ну и сохраняем все это хозяйство куда-нибудь сразу же: на страницу пишем или в базу вставляем.
  • 0

#7 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 28 июля 2011 - 12:56

взял http://www.google.com.ua/, сделал
links1 = selenium.getAllLinks().length;
		String[] links2=selenium.getAllLinks();
		
		for (int i = 0; i < links1; i++)
				{
				h = selenium.getAttribute(links2[i] + "@href");
				System.out.println(h);
				}
на 7й ссылке вываливается, не может найти элемент, у вас так же?
  • 0

#8 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 28 июля 2011 - 12:59

взял http://www.google.com.ua/, сделал

links1 = selenium.getAllLinks().length;
		String[] links2=selenium.getAllLinks();
		
		for (int i = 0; i < links1; i++)
				{
				h = selenium.getAttribute(links2[i] + "@href");
				System.out.println(h);
				}
на 7й ссылке вываливается, не может найти элемент, у вас так же?

я код не проверяю.. мне нечем :)
7-я ссылка - это "ещё"?
  • 0

#9 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 28 июля 2011 - 13:00

я код не проверяю.. мне нечем :)
7-я ссылка - это "ещё"?


там около 25 их
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных