好的,我发现此链接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。我不知道appengine
或GAE
是什么意思或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)?)
答案 0 :(得分:0)
我相信你是not allowed to crawl Google Groups。可能他们正在积极尝试阻止这种情况,因此您看不到预期的内容。
答案 1 :(得分:0)
我想详细说明几点:
<application>
标记更新为您的应用程序名称,并在 CrawlerModule 中使用您自己的服务密钥。最后,如果您的客户端使用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
将起作用。