【发布时间】:2014-05-18 08:30:06
【问题描述】:
我有一个 Meteor 项目,其中添加了可爬取程序包。如果我正常加载页面然后执行view page source 我在<body> 标记中什么也得不到。如果我输入 url,然后在末尾添加丑陋的 ?_escaped_fragment_= 并再次查看页面源 - 一切都会显示出来。我认为这意味着可蜘蛛程序包正在工作并且正在使用phantomJS 正确呈现 HTML。所以现在的问题是,如何使没有丑陋部分的常规 URL 变得可抓取?我想将该网站提交给 google Adsense 并且不接受丑陋的 url,试图查看 google 使用 http://www.feedthebot.com/tools/spider/ 工具看到的内容会导致空结果。有什么建议/帮助吗?
编辑 1:添加来自 Google Webmaster 的 google 抓取结果
Date: Saturday, April 5, 2014 at 8:13:45 PM PDT
Googlebot Type: Web
Download Time (in milliseconds): 304
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Date: Sun, 06 Apr 2014 03:13:58 GMT
Connection: keep-alive
Transfer-Encoding: chunked
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/7a2b57749c356bfba1728bdae88febf653d0c6ca.css?meteor_css_resource=true">
<script type='text/javascript'>__meteor_runtime_config__ = {"meteorRelease":"0.7.2","PUBLIC_SETTINGS":{"ga":{"account":"UA-********-1"}},"ROOT_URL":"http://****.***","ROOT_URL_PATH_PREFIX":"","autoupdateVersion":"8213872485a2cc1cff2745d78330d7c8db8d8899"};</script>
<script type="text/javascript" src="/caefe2b2510e562c5e310f649c4ff564ddb6b519.js"></script>
<script type='text/javascript'>
if (typeof Package === 'undefined' ||
! Package.webapp ||
! Package.webapp.WebApp ||
! Package.webapp.WebApp._isCssLoaded())
document.location.reload();
</script>
<meta name="fragment" content="!">
</head>
<body>
</body>
</html>
编辑 2: 目前看来,Google 正确地索引了该站点,但 Adsense 没有使用相同的策略,这对我来说是这个问题的核心。 Meteor + spiderable + phantomjs = AdSense 不兼容 = 但...兼容 Google 索引。
【问题讨论】:
-
spiderable 包是否明确实现了 Google 的 AJAX 抓取策略?我不会指望“fetch as google”功能适用于 AJAX 页面,但抓取可能仍然成功(提交原始 URL 时)。你读过developers.google.com/webmasters/ajax-crawling吗?这就是说,我认为它可能工作得很好。等几天,然后在 google 上搜索你的页面,看看 google 在缓存中有什么,以及它是否正在索引你的 AJAX 内容中的单词。
-
听起来您使用的工具没有使用 Google 的 AJAX crawling specification。尝试注册Google Webmaster Tools 并添加您的网站。这将允许您查看 Google 抓取工具的实际抓取结果。
-
你是说google的爬虫能发现丑陋的url,而蜘蛛工具却不能?我确实浏览了 ajax-crawling 页面,但似乎那里的所有建议都已经适用于该站点。我想,我会尝试重新提交,看看它现在是否有效。
-
当我使用该工具尝试蜘蛛meteor.com 时,它说蜘蛛看到了 1 个文字。这显然是错误的; Meteor 主页在 Google 搜索结果中被彻底索引。这表明蜘蛛工具没有实现 Google 用来蜘蛛实时网站的 AJAX 抓取规范。
-
@sbking 我已经添加了谷歌抓取的结果,它产生了类似的结果。此外,spiderable 包应该实现正确的 Google AJAX 抓取规范。除了默认的 meteor.com 服务器之外,您是否有任何可蜘蛛/部署的经验?
标签: seo meteor phantomjs adsense