Chr*_*cob 14 java ajax seo google-app-engine htmlunit
现实问题:
我的应用程序托管在Heroku上,据我所知,他无法提供运行无头(无GUI)浏览器的解决方案 - 例如HTMLUnit - 用于为Googlebot 生成HTML快照以索引我的AJAX内容.
我建议的解决方案:
如果您还没有,我建议您阅读Google的"使AJAX应用程序可抓取的完整规范".
想象一下,我有:
http://example.comhttp://example.com#!tab=TabA&subtab=SubTab3客户端Javascript location.hash通过AJAX 获取并加载TabA,SubTab3内容.注意:Hash Bang(#!)是google规范的一部分.
我想在Google App Engine(GAE)上托管一个简单的"网络服务" :
http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3(url param应为URLEncoded)http://example.com#!tab=TabA&subtab=SubTab3在服务器上打开并运行客户端javascript.我的http://example.com应用程序需要管理http://htmlsnapshot.appspot.com...基本上:
http://example.com/?_escaped_fragment_=tab=TabA%26subtab=SubTab3(googlebot抓取工具逃脱某些字符,例如%26 =&).http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3(url param应为URLEncoded)我没有使用Google App Engine或Java或HTMLUnit的任何经验.
我或许可以弄明白......如果我这样做,我会发布我的结果.
否则,我觉得这是一个很好的机会,有人写了一个踢屁股的博客文章,概述了一个新手一步一步的指导,以建立这样的网络服务.
这将为更优秀(和免费!)的Google App引入更多人.此外,它无疑会鼓励更多人采用Google的可抓取AJAX内容规范......我们都可以从中受益!
随着谷歌的规范获得更多的认可,设置无头浏览器的"障碍"将发送许多开发人员谷歌搜索答案!立即获取成名和荣耀的答案!(编辑:至少我会唱赞歌).
@_chrisjacob如果您想讨论解决方案,请在推特上打我.
我已经在 AppEngine 上成功使用了 HTMLunit。我执行此操作的 GWT 代码可在gwt-platform 项目中找到,我得到的结果与 Amit Manjhi 的HTMLunit-AppEngine 测试应用程序的结果类似。
使用 GWTP 当前的 HTMLunit 支持来准确执行您所描述的操作应该相对容易,尽管您可能可以在更简单的应用程序中执行此操作。我发现的一个问题是 AppEngine 请求有 30 秒的超时时间,因此 HTMLunit 处理页面的时间不能超过该超时时间。
更新:已经有一段时间了,但我终于解决了有关使用 GWTP 使 GWT 应用程序可爬行的长期存在的问题。文档并不完整,但请查看问题: http://code.google.com/p/gwt-platform/issues/detail ?id=1
| 归档时间: |
|
| 查看次数: |
3272 次 |
| 最近记录: |