HTML-снимок для сканера - понимание того, как это работает - PullRequest
3 голосов
/ 08 октября 2010

Я читаю эту статью сегодня. Честно говоря, мне действительно интересно "2. Большая часть вашего контента создается с помощью серверной технологии, такой как PHP или ASP.NET".

Я хочу понять, если я понял:)

Я создаю этот php-скрипт (gethtmlsnapshot.php), где я включаю серверную страницу ajax (getdata.php) и экранирую (для безопасности) параметры. Затем я добавляю его в конец статической html-страницы (index-movies.html). Правильно? Теперь ...

1 - Куда я положил этот gethtmlsnapshot.php? Другими словами, мне нужно позвонить (или, что лучше, сканеру нужно) на эту страницу. Но если у меня нет ссылки на главной странице, сканер не может вызвать ее: O Как сканер может вызвать страницу с параметрами _escaped_fragment_? Он не может знать их, если я их где-то не конкретизирую:)

2 - Как экипаж может вызвать эту страницу с параметрами? Как и прежде, мне нужна ссылка на этот сценарий с параметрами, чтобы экипаж просматривал каждую страницу и сохранял содержимое динамического результата.

Вы можете мне помочь? А что вы думаете об этой технике? Не будет ли лучше, если разработчики crawler будут делать своих собственных ботов другими способами? :)

Дайте мне знать, что вы думаете. Приветствия

1 Ответ

8 голосов
/ 09 октября 2010

Я думаю, что вы что-то не так поняли, поэтому я попытаюсь объяснить, что здесь происходит, включая предысторию и альтернативы.поскольку это действительно очень важная тема, на которую большинство из нас время от времени натыкаются (или, по крайней мере, на что-то подобное).

Использование AJAX или скорее асинхронное инкрементное обновление страницы (потому что большинство страниц на самом деле не используют XML, ноJSON), обогатил сеть и обеспечил отличный пользовательский опыт.

Однако, это также дорого стоило.

Основной проблемой были клиенты, которые не поддерживали объект xmlhttpget или JavaScript ввсе.В начале вы должны были обеспечить обратную совместимость.Обычно это делается путем предоставления ссылок, захвата события onclick и запуска вызова AJAX вместо перезагрузки страницы (если клиент поддерживает это).

Сегодня почти каждый клиент поддерживает необходимые функции.

Так что проблема сегодня в поисковых системах.Потому что они этого не делают.Ну, это не совсем так, потому что они частично (особенно Google), но для других целей.Google оценивает определенный код JavaScript, чтобы предотвратить SEO Blackhat (например, ссылка, указывающая куда-то, но JavaScript открывает какую-то совершенно другую веб-страницу ... Или HTML-коды ключевых слов, которые невидимы для клиента, потому что они удаляются JavaScript или наоборот).

Но, сохраняя простоту, лучше всего подумать о поисковике для самого простого браузера без поддержки CSS или JS (то же самое с CSS, его партия анализируется по особым причинам).

Так что, если у вас есть «ссылки AJAX» на вашем веб-сайте, и веб-сканер не поддерживает отслеживание их использования с помощью JavaScript, они просто не сканируются.Или они?Ответ: ссылки JavaScript (например, document.location) следуют.Google часто достаточно умен, чтобы угадать цель.Но Ajax-звонки не совершаются.простой, потому что они возвращают частичное содержимое, и из него невозможно построить полноценную целую страницу, поскольку контекст неизвестен, а уникальный URI не представляет местоположение содержимого.

Таким образом, в основном существует 3 стратегии для обходачто.

  1. имеют событие onclick для ссылок с обычным атрибутом href в качестве запасного (я думаю, это лучший вариант, так как он решает проблему как для клиентов, так и для поисковых систем)
  2. отправкасодержание сайтов через вашу карту сайта, чтобы они были проиндексированы, но совершенно отдельно от ссылок на ваш сайт (обычно страницы предоставляют постоянную ссылку на эти URL, чтобы внешние страницы связывали их с поиском страниц)
  3. схема сканирования ajax

Идея состоит в том, чтобы ваши запросы JavaScript xmlhttpget были связаны с соответствующими атрибутами href, которые выглядят так: www.example.com/ajax.php#!key=value

, поэтому ссылка выглядит следующим образом:

<a href="http://www.example.com/ajax.php#!page=imprint" onclick="handleajax()">go to my imprint</a>

функция handleajax может оценить переменную document.location для запуска инкрементного асинхронного обновления страницы.Также возможно передать идентификатор или URL или что-то еще.

однако сканер распознает формат схемы сканирования ajax и автоматически выбирает http://www.example.com/ajax.php.php?%23!page=imprint вместо http://www.example.com/ajax.php#!page=imprint, поэтому вы запрашиваете строку, затем включаете фрагмент html, из которогоВы можете сказать, какой частичный контент был обновлен.поэтому вам просто нужно убедиться, что http://www.example.com/ajax.php.php?%23!page=imprint возвращает полный веб-сайт, который выглядит так, как будто веб-сайт должен выглядеть для пользователя после обновления xmlhttpget.

очень элегантное решение такжепередать сам объект в функцию-обработчик, которая затем выбирает тот же URL, что и сканер, выбранный с использованием ajax, но с дополнительными параметрами.Затем ваш серверный скрипт решает, доставить ли всю страницу или только частичное содержимое.

Это действительно очень креативный подход, и вот мой личный анализ pr / con:

pro:

  • частично обновленные страницы получают уникальный идентификатор, после чего они становятся полностью квалифицированными ресурсами в семантической сети
  • частично обновленные сайты получают уникальный идентификатор, который может быть представлен поисковыми системами

жулик:

  • это просто запасное решение для поисковых систем, а не для клиентов без JavaScript
  • это предоставляет возможности для черной шляпы SEO. Так что Google наверняка не примет его полностью или не оценит страницы с этой техникой высоко без надлежащей проверки содержания.

Вывод:

  • просто обычные ссылки с резервными унаследованными рабочими атрибутами href, но обработчик onclick - лучший подход, поскольку он обеспечивает функциональность для старых браузеров.

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

  • можно утверждать, что реализация схемы сканирования ajax более последовательна и проще в реализации. Я думаю, что это вопрос дизайна вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...