Могут ли поисковые роботы или спам-боты эмулировать / запускать события JavaScript? - PullRequest
2 голосов
/ 30 марта 2012

Могут ли поисковые роботы или спам-боты эмулировать / запускать события JavaScript во время чтения страницы?

Ответы [ 2 ]

1 голос
/ 30 апреля 2016

Нет, потому что поисковые роботы извлекают статический поток HTML.Они не запускают какие-либо события инициализации, такие как init() или myObj.init(), которые есть в вашем коде JavaScript.Они не загружают никакие внешние библиотеки, такие как jQuery, не выполняют код $(document).ready и не слушают ни стандартных слушателей .click().Поэтому, если у автора поискового бота нет особой причины намеренно создавать своего поискового бота для запуска или выполнения <script> блоков, находящихся на странице, они обычно не будут запускать код JavaScript.

Я написалпоисковый бот.Все, что меня волнует, это извлечение ссылок и текста со страницы.Однако я не хочу запускать чужой компонент календаря на стороне клиента или компонент видеопроигрывателя.Я не хочу, чтобы этот код JS был вставлен в мою базу данных, где он мог бы оказаться на странице результатов поисковой системы ( SERP ).Таким образом, нет никакой причины запускать команду eval() для любого кода в блоках <script> и не запускать какие-либо события инициализации в слое JS.

Когда поисковые роботы загружают HTML DOM, появляютсяобычно в них встраиваются внешние файлы .js.Таким образом, для выполнения JS потребуется анализ строк для нескольких файлов .js, затем создание конкатенатора для этих файлов и затем попытка выполнить все, что было загружено.Это дополнительная работа для автора поискового бота, без какой-либо чистой выгоды.Мы просто не хотим, чтобы этот код JS появлялся где-либо в наших поисковой выдаче.В противном случае, просмотр кода JS в поисковой выдаче выглядит как плохой результат поиска.Однако боты могут видеть содержимое в тегах <script> и ищут только ссылки для сканирования.Возможно, именно поэтому люди начинают думать, что боты могут выполнять JavaScript, но на самом деле они только анализируют их для своих текстовых ссылок.

0 голосов
/ 30 марта 2012

Вот тот, кто утверждает, что Google загружает страницы в автономный WebKit при сканировании, чтобы получить возможность индексировать содержимое AJAX, и по другим причинам. Хотя поисковые роботы обычно не отправляют формы.

Я посмотрел ваш сайт, и защита полностью на стороне клиента. Поскольку HTML-форма на самом деле представляет собой просто описание того, какие ключи / значения следует отправлять на какой-либо URL-адрес, нет причины, по которой никто не мог бы просто ПОСТАВИТЬ эти данные с помощью бота.

Пример:

POST /contact
/* ... */

fullname=SO+test&email=test%40example.com&reason=test&message=test

Кроме того, и это важно, вы наказываете законных посетителей таким образом. Существует множество причин, по которым JavaScript может быть заблокирован, не загружен или просто не работает.

...