为什么我看不到" http://crawlservice.appspot.com/?key = 123456& url = http://mydomain.com#!article"?

时间:2014-05-17 05:33:27

标签: google-app-engine gwt gwtp

好的,我发现此链接https://code.google.com/p/gwt-platform/wiki/CrawlerSupport#Using_gwtp-crawler-service解释了如何使您的GWTP应用程序可抓取。

我有一些GWTP经验,但我对AppEngine一无所知。

Google表示其" crawlservice.appspot.com"可以解析任何Ajax页面。现在我有一个页面" http://mydomain.com#!article"有一个从数据库中提取的artice。假设该页面包含文字" 这是我的文章"。现在我打开这个链接:

crawlservice.appspot.com/?key = 123456&amp; url = http://mydomain.com#!article,然后我可以看到所有的javascript,但我找不到文字&#34; 这是我的文章< /强>&#34 ;.

为什么?

现在让我们看看现实生活中的例子

打开此链接https://groups.google.com/forum/#!topic/google-web-toolkit/Syi04ArKl4k&amp;您将看到文字&#34; 如果我在IE中打开该网址&#34;

现在你打开http://crawlservice.appspot.com/?key=123456&url=https://groups.google.com/forum/#!topic/google-web-toolkit/Syi04ArKl4k你可以看到所有的javascript但是没有文字&#34; 如果我在IE中打开该网址&#34;,

为什么?

如果我使用http://crawlservice.appspot.com/?key=123456&url=mydomain#!article那么谷歌抓取工具能否看到mydomain#!article中的文字?

为什么key=123456,这意味着每个人都可以使用这项服务?我们有自己的钥匙吗? Google会限制对其服务的通话次数吗?

你能解释一下这些事吗?

额外信息:

克里斯托弗建议我使用这个例子 https://github.com/ArcBees/GWTP-Samples/tree/master/gwtp-samples/gwtp-sample-crawler-service

然而,我遇到了其他问题。我的应用程序是纯GWTP,它在WEB-INF中没有appengine-web.xml。我不知道appengineGAE是什么意思或Maven是什么意思。

我需要注册AppEngine吗?

我的Appp可能会有很多流量。我也在使用Godaddy VPS。我不想注册App Engine,因为我必须为Google支付额外的流量。

我的GWTP应用程序中的所有内容现在都可以,除了Crawler Function。

因此,如果我不使用Google App Engine,那么如何为GWTP构建Crawler功能?

我尝试将HTMLUnit用于我的应用,但HTMLUnit并不适用于GWTP(请参阅此处的详细信息Why HTMLUnit always shows the HostPage no matter what url I type in (Crawlable GWT APP)?

2 个答案:

答案 0 :(得分:0)

我相信你是not allowed to crawl Google Groups。可能他们正在积极尝试阻止这种情况,因此您看不到预期的内容。

答案 1 :(得分:0)

我想详细说明几点:

  1. 不再维护Google Code文档。你应该看看Github:https://github.com/ArcBees/GWTP/wiki/Crawler-Support
  2. 您不应该使用http://crawlservice.appspot.com。这不是谷歌服务,它已经过时了,我们可能决定将其删除。这只是一个公开的例子。您应该在App Engine上创建自己的应用程序(https://appengine.google.com/
  3. 这里有一个示例(https://github.com/ArcBees/GWTP-Samples/tree/master/gwtp-samples/gwtp-sample-crawler-service)使用GWTP的Crawler Service。你基本上可以复制粘贴它。只需确保将 appengine-web.xml 中的<application>标记更新为您的应用程序名称,并在 CrawlerModule 中使用您自己的服务密钥。
  4. 最后,如果您的客户端使用GWTP并且您遵循了文档,那么它将起作用。如果要手动尝试,则必须对查询参数进行编码。 例如http://crawlservice.appspot.com/?key=123456&url=http://www.arcbees.com#!service将无效,因为散列(包括和#之后的所有内容)都不会发送到服务器。 另一方面,http://crawlservice.appspot.com/?key=123456&url=http%3A%2F%2Fwww.arcbees.com%2F%23!service将起作用。