Обеспечение возможности сканирования приложений AJAX? Как создать простой веб-сервис на Google App Engine для создания снимков HTML?

Проблема реального мира:

У меня есть приложение, размещенное на Heroku , который (насколько мне известно) не может предложить решение для запуска безголового (без графического интерфейса) браузера - такого как HTMLUnit - для генерации снимков HTML для робота Googlebot для индексации моего содержимого AJAX.

Мое предлагаемое решение:

Если вы еще этого не сделали, я предлагаю прочитать полную спецификацию Google по созданию приложений AJAX, которые можно сканировать . subtab = SubTab3 (параметр URL должен иметь код URLEncoded)

  • Запускает HTMLUnit, чтобы открыть http: //example.com#! tab = TabA & subtab = SubTab3 и запустить клиентский JavaScript на сервере. .
  • HTMLUnit возвращает DOM, когда все завершено (или прошло около 45 секунд).
  • Возвращаемое содержимое может быть отправлено обратно через JSON / JSONP, или же URL-адрес возвращается в файл, созданный и сохраненный в. сервер движка приложений Google (для файловых "кэшированных" результатов) ... открыт для предложений здесь. Если был возвращен URL-адрес файла, вы могли бы CURL получить исходный код (он же HTML-снимок).
  • Моему приложению http://example.com понадобится управлять вызовом на http://htmlsnapshot.appspot.com ... в основном:

    1. Поймать Googlebots вызов на http: // пример. com /? _ escaped_fragment_ = tab = TabA% 26subtab = SubTab3 (сканер googlebot экранирует определенные символы, например,% 26 = &).
    2. Отправить запрос из серверной части на http://htmlsnapshot.appspot.com? url = http: //example.com#! tab = TabA & subtab = SubTab3 (параметр url должен иметь код URLEncoded)
    3. Визуализировать возвращенный моментальный снимок HTML во внешнем интерфейсе.
    4. Google индексирует контент, и мы радуемся!

    У меня нет опыта работы с Google App Engine, Java или HTMLUnit.

    Возможно, я смогу это выяснить ... и опубликую свои результаты, если я это сделаю.

    В противном случае я чувствую, что это ОЧЕНЬ хорошая возможность для кого-то написать офигенное сообщение в блоге, в котором излагается пошаговое руководство для новичков по настройке подобного веб-сервиса.

    Это познакомит больше людей с отличными (и бесплатными! ) Google App Engine. Кроме того, это, несомненно, будет способствовать тому, что все больше людей примут спецификации Google для контента AJAX для сканирования ... что-то, от чего мы все сможем извлечь выгоду!

    По мере того, как спецификации Google получат все большее признание, будет отправлено «препятствие» настройки браузера без головы многие разработчики ищут ответы! Получить сейчас с ответом на славу и славу! (отредактируйте: по крайней мере я буду петь ваши похвалы).

    Напишите мне в твиттере @_ chrisjacob , если вы хотите обсудить решения.

    14
    задан Chris Jacob 17 February 2011 в 14:00
    поделиться

    1 ответ

    Я успешно использовал HTMLunit в AppEngine. Мой GWT-код для этого доступен в проекте gwt-platform . Полученные мной результаты были аналогичны результатам тестового приложения HTMLunit-AppEngine Амита Манджи.

    Должно быть относительно легко использовать текущую поддержку HTMLunit GWTP, чтобы делать именно то, что вы описываете, хотя вы, вероятно, могли бы сделать это в более простом приложении. Одна проблема, которую я вижу, заключается в том, что запросы AppEngine имеют 30-секундный тайм-аут, поэтому у вас не может быть страницы, для обработки которой HTMLunit требуется больше времени.

    ОБНОВЛЕНИЕ : Прошло некоторое время, но я, наконец, решил давнюю проблему, касающуюся возможности сканирования приложений GWT с помощью GWTP. Документации нет полностью, но проверьте проблему: http://code.google.com/p/gwt-platform/issues/detail?id=1

    2
    ответ дан 1 December 2019 в 16:53
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: