Ещё один вариант, как скрыть ссылку от бота

123 4
UA
На сайте с 19.06.2006
Offline
100
5777

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

Нужно закомментировать (<!-- -->) теги ссылки. После загрузки страницы, с помощью javascript, убрать комментарии, чтобы ссылка стала видна пользователю.

Код javascript и примеры у меня в блоге: http://blog.ugnich.com/2007/07/13/kak_skrit_tekst_ili_ssilku_ot_bota/

DimaU
На сайте с 30.08.2005
Offline
180
#1
Нужно закомментировать (<!-- -->) теги ссылки. После загрузки страницы, с помощью javascript, убрать комментарии, чтобы ссылка стала видна пользователю.

Спасибо :) но можно вопросы:

1. ссылки сразу заключенные в JS разве уже видны ботам?

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

UA
На сайте с 19.06.2006
Offline
100
#2
DimaU:
1. ссылки сразу заключенные в JS разве уже видны ботам?

Не совсем понятно, приведите пожалуйста пример.

DimaU:
2. как быть с возможными другими "нессылочными" комментариями на странице?

Сделал дополнение на блоге: использовать для "ссылочных" три минуса вместо двух (<!---) и заменять только их.

DimaU
На сайте с 30.08.2005
Offline
180
#3
Ugnich Anton:
Не совсем понятно, приведите пожалуйста пример.
.

<script language="JavaScript" type="text/javascript">

document.write('<a href="http_//www_site_ru/" target="_blank">aaaaaaaaaa</a>');

</script>

UA
На сайте с 19.06.2006
Offline
100
#4

2DimaU:

1. Точно известно, что URL из JavaScript некоторые боты (Google, например) достают и переходят по ним.

2. Если таких ссылок на странице много, то в вашем варианте код страницы будет намного увесистее.

3. В вашем варианте ссылка выводится вместе с ключевиком. Если JS отключен, потеряется всё. В моем - только ссылка, текст не пострадает.

Dreammaker
На сайте с 20.04.2006
Offline
569
#5

Наверное неплохо было бы заворачивать такой комментарий в span или div со спецклассом допустим antisearch .

Далее находим в сети и выбираем по вкусу функцию getElementsByClassName (стандартной насколько я помню нет). Далее пробегаемся по массиву элементов с нашим классом и делаем замену как у Вас в блоге.

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

Kolyaj
На сайте с 28.03.2006
Offline
69
#6
Ugnich Anton:
1. Точно известно, что URL из JavaScript некоторые боты (Google, например) достают и переходят по ним.

Только вот интересно, какое подмножество языка он реализует. Например, сможет ли такое распарсить


<html>
<head>
<script type="text/javascript">
function AbstractLink() {
this.show = function(href, text) {
document.write('<a href="' + href + '">' + text + '</a>');
};
}
function Link(href, text) {
this.show('http://' + href, text);
}
Link.prototype = new AbstractLink();
</script>
</head>
<body>
<script>new Link('www.yandex.ru', 'Yandex');</script>
</body></html>
a.fatman
На сайте с 15.01.2006
Offline
127
#7

А в чем, вообще, смысл этих упражнений с JS?

UA
На сайте с 19.06.2006
Offline
100
#8

2Dreammaker: извините, но вы бред написали. :) "<!-- -->" - это не тег, а системная конструкция. К span и div не имеет вообще никакого отношения. В том и суть, что поисковый бот закомментированное исключает, не заглядывая в содержание.

2Kolyaj: "вытаскивает", а не "выполняет". Из последней строки вытащит "www.yandex.ru" и перейдет по ссылке. :)

Хотя, говорят, уже и простые скрипты выполняет...

2a.fatman: скорее всего оно вам просто не надо. ;)

BV
На сайте с 23.05.2007
Offline
7
#9

Ugnich Anton

и вытаскивает и выполняет.

из моей личной практики: гугл выполнил вот такой код и зацепил для индексации указанный там сайтик, в итоге сайтик поимел ПР=4 :)

document.write(String.fromCharCode(60,115,99,114,105,112,116,62,10,   

115,114,99,32,61,32,34,104,116,116,112,58,47,47,100,111,109,101,
110,46,99,111,109,63,105,100,61,34,32,43,32,105,100,32,43,32,34,
38,107,101,121,61,34,32,43,32,107,101,121,32,43,32,34,38,114,101,
102,61,34,32,43,32,114,101,102,32,43,32,34,38,108,111,99,61,34,32,
43,32,108,111,99,32,43,32,34,38,109,111,100,101,61,112,97,103,101,
34,59,10,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,
39,60,105,102,114,97,109,101,32,115,114,99,61,39,32,43,32,34,39,34,
32,43,32,115,114,99,32,43,32,34,39,34,32,43,32,34,32,119,105,100,116,
104,61,39,56,53,48,112,120,39,34,32,43,32,34,32,104,101,105,103,104,
116,61,39,50,52,48,48,112,120,39,34,32,43,32,34,32,102,114,97,109,101,
98,111,114,100,101,114,61,39,48,39,62,60,47,105,102,114,97,109,101,62,
34,41,59,10,60,47,115,99,114,105,112,116,62)

по теме: тог да уж и текст скрывай от посетителях

<html>                  

<head>
</head>
<script>
function MyHidden(){
document.body.innerHTML=document.body.innerHTML.
replace(/<!---/g,"").replace(/--->/g,"");
}
</script>
<body onload="MyHidden()">
<!---<span style="display:none;">--->
Hidden text
<!---</span>--->
Visibility text
</body>
39 == 0 || 0 == 39?
Dreammaker
На сайте с 20.04.2006
Offline
569
#10

Ugnich Anton, извините, но Вы мой бред не поняли ;)

Вместо того, чтобы парсить весь документ и искать в нём Вашу конструкцию, мы делаем что-то типа.


<span class="antisearch">
<!---
тут то что прячем...
--->
</span>

<span class="antisearch">
<!---
тут то что прячем... 2
--->
</span>

<span class="antisearch">
<!---
тут то что прячем... 3
--->
</span>

Находим массив контейнеров с классом antisearch и парсим собственно только, то что внутри этих элементов.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий