现实世界中的问题:
我的应用托管在Heroku上,据我所知,Heroku无法提供一种运行无头(无GUI)浏览器(例如HTMLUnit)的解决方案,以为Googlebot
生成HTML快照以索引我的AJAX内容。
我建议的解决方案:
如果您还没有的话,建议您阅读Google的
《使AJAX应用程序可抓取
的完整规范》。
想象一下我有:
http://example.com
http://example.com#!tab=TabA&subtab=SubTab3
则onload 客户端Javascript将通过location.hash
并通过AJAX加载TabA,SubTab3内容。注意:Hash Bang(#!)是 google
spec的一部分。
我想构建一个托管在Google App Engine(GAE)上的简单“
Web服务”,该服务是:
http://htmlsnapshot.appspot.com?url=http://example.com#!tab=TabA&subtab=SubTab3
(URL参数应为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参数应为URLEncoded)我对Google App Engine或Java或HTMLUnit没有任何经验。
我也许可以弄清楚……如果可以的话,将发布我的结果。
否则,我觉得这是一个 非常好的机会, 对于某人来说,写一个踢屁股博客文章概述 了新手如何逐步 建立这样的Web服务的 指南 。
这会将更多的人介绍给出色的(免费的)Google App
Engine。毫无疑问,这还将鼓励更多的人采用Google的可抓取AJAX内容规范…我们都可以从中受益!
随着Google规范的获得越来越多的接受,设置无头浏览器的“障碍”将使 许多
开发人员谷歌搜索答案!立即获得名誉和荣耀的答案!(编辑:至少我会唱歌给你赞美)。
@_chrisjacob
如果您想讨论解决方案,请在Twitter上打我。
我已在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
问题内容: 我需要用python抓取网站。我使用urlib模块获取了源html代码,但是我还需要抓取由javascript函数(包含在html源代码中)生成的html代码。该功能在站点中的作用是,当您按下按钮时,它会输出一些html代码。如何使用python代码“按”此按钮?可以帮助我吗?我用firebug捕获了POST请求,但是当我尝试在url上传递它时,出现403错误。有什么建议么? 问题答案
我已经看到了新版本的Android反应本机,并尝试了一些示例。它仅适用于USB调试模式和“adb反向tcp: 8081 tcp: 8081”。我如何为“生产”构建Android应用程序,包括所有依赖项,而无需反应Web服务器连接。谢谢你。
我在创建一个返回“hello”字符串的简单web服务时遇到了以下错误 白标签错误页此应用程序没有/Error的显式映射,因此您将其视为回退。 我的Web服务终结点: 我的配置类: 我的依赖关系: 我的项目结构:
我是詹金斯的新手,运气不太好。我正在尝试用maven构建我的spring boot应用程序。它成功地构建,直到我在调用顶级Maven目标中添加命令“clean compile package”。 构建失败。 我该如何解决这个问题?
问题内容: 我想开始用Java进行Web开发。我不知道如何开始,学习什么或学习和使用的最佳Web框架是什么。帮帮我? 问题答案: 我认为,您只是Web应用程序的新手,而不是Java本身的新手。 首先,我可以为前端推荐Apache Wicket框架。他们的网站上有很多示例,邮件列表是上手的好地方,而Wicket in Action 是令人愉快的阅读。 如果要使用Java Server Pages(J
在本章中,我们将了解如何在FuelPHP框架中创建一个简单的应用程序。 如前所述,您知道如何在Fuel中创建新项目。 我们可以举一个员工细节的例子。 让我们首先使用以下命令创建一个名为Employee的项目。 oil create employee 执行命令后,将使用以下file structure创建employee项目 - employee ├── CHANGELOG.md ├── co