Как получить снимки HTML-кода приложения AJAX с помощью автономного браузера из PHP? - PullRequest
3 голосов
/ 07 марта 2011

С трудом решаете, как запустить браузер без головы для обслуживания статических снимков HTML сайта, который использует javascript (точнее, sammy.js) для доставки содержимого AJAX.

Я работаю над спецификацией Google для обеспечения возможности сканирования приложений AJAX:

http://code.google.com/web/ajaxcrawling/docs/getting-started.html

который по большей части великолепен и очень понятен, и у меня нет проблем с подбором URL-адресов? _Escaped_fragment_.

Большая часть шаблонов выполняется на стороне сервера, поэтому у меня возник соблазн просто написать файл создания снимка PHP, который использует те же совпадения регулярных выражений из кода приложения sammy (существует множество маршрутов) для включения в различные файлы шаблонов. , Однако в приложении javascript происходит много действий, поэтому это будет означать зеркалирование всей этой обработки в PHP, что в свою очередь означает поддержание обоих файлов рядом, на разных языках, что является большой работой!

Теперь я прочитал, что вы можете использовать браузер без головы, чтобы «визуализировать» страницу и выполнить весь javascript (соответствующий #! / Route и доставить правильное содержимое для запроса), а затем вернуть все содержимое DOM как HTML, который будет передан googlebot.

Я искал долго и упорно и не могу найти какое-либо шаг за шагом руководства по ведению обезглавленных браузеров с PHP (для общей newbs Java). Что, я полагаю, означает, что я просто не знаю, что искать.

Что мне интересно: это еще больше работает для настройки и использования безголового браузера для обслуживания этих снимков HTML? И если да, то стоит ли так или иначе делать?

Кроме того, если бы вы могли указать мне какие-либо руководства, это было бы здорово!

Спасибо!

Джосс

Ответы [ 2 ]

2 голосов
/ 20 марта 2011

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

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

Я использовал Selenium-RC , чтобы сделать только одну конкретную вещь в конкретном проекте, и обнаружил, что решение всех проблем, связанных с Селеном, быстро стало проектомк себе.Хотя Selenium-RC, безусловно, может выполнить то, что вы пытаетесь сделать, это кажется большим обязательством, учитывая специфику того, чего вы хотите достичь.

(Будучи полностью любителем Java, я могуНа самом деле не комментируйте HTMLUnit , но только по одной спецификации, кажется, что это, вероятно, более подходит для ваших нужд, чем Selenium-RC. Меня это не удивит, хотя, если бы он имел некоторые настройки итребования управления.)

Итак, вернемся к альтернативе дублирования всего в PHP ...

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

0 голосов
/ 26 апреля 2011

Всем, кто интересуется - с тех пор я разобрался, как делать именно то, что нужно, используя node.js, и скоро опубликую его на github и обновлю вопрос ...

...