【问题标题】:How to crawl jquery powered websites?如何抓取 jquery 驱动的网站?
【发布时间】:2012-11-26 00:41:33
【问题描述】:

我正在构建一个单页 javascript 驱动的网站。我有所有页面的所有必要数据在我的主页上使用 php 作为 json 对象回显。然后我使用为每个页面制作的自定义插件初始化页面,它使用相关的 json 数据动态构建 dom,我将这些数据传递给插件,所以 我没有任何 ajax 请求。 我网站上的链接采用以下格式!#about、!#home 等... 目前插件的 init 方法在 hashchange 上调用。我应该怎么做才能让这些页面可以被谷歌机器人抓取,以及如何为每个页面制作不同的标题和描述元标记?

我尝试了各种在谷歌文档和许多其他网站上找到的东西。 我已将链接从 #mylink 更改为 #!mylink ,因此谷歌 应该 将其解释为 get _escape_fragment_ 变量,然后我尝试添加这段 php 代码:

if ($fragment = $_GET['_escaped_fragment_']) {
    header("Location: Project.php?id=$fragment", 1, 301);
    exit;
}

其中 project.php 是一个包含相关信息的 html 快照,我希望对其进行抓取。基本上只是核心信息。但据我所知,没有任何反应...... :( 毕竟有没有办法在没有 AJAX 请求的情况下实现这一目标?

【问题讨论】:

  • 为什么要在客户端动态构建页面?这只会让 Google 的机器人和那些禁用 Javascript 的人变得更加困难。
  • 因为我在页面之间有一些花哨的过渡来最大化用户体验......你可能在 awwwards.com 和其他展示网站上看到过......
  • “最大化用户体验”听起来像是一个...委婉说法。
  • 我看不出您的评论有什么帮助? :(如果你觉得那种效果被夸大了,你最好和我的艺术总监谈谈……
  • “我在页面之间有一些花哨的过渡来最大化用户体验” - 我希望你有办法让用户禁用它们

标签: php javascript singlepage google-crawlers


【解决方案1】:

Google 实际上已经发布了如何使 ajax 可抓取 - 谁能更好地告诉你如何做!?

https://developers.google.com/webmasters/ajax-crawling/

来自该页面的直接链接

替代指南

如果您觉得这很难理解,请在 SitePoint 上试试这个,它会引导您了解它是如何完成的:http://www.sitepoint.com/google-crawl-index-ajax-applications/

【讨论】:

  • 该文档真的很差,没有真实/现场示例。也许我不够聪明,但我无法理解这样做的实际方法。
  • 试试那个新链接(指向站点点)看看你的想法?
  • 没有冒犯,但是如果您不遵循他们的建议和其他人的推荐方式,您可能很难让谷歌为您的网站编制索引(即使这与谷歌相同,哈哈)。您之前已经看过数百万页的事实表明“这就是这样做的方式” - 或者至少是如果您希望 Google 与您的网站配合得很好的方式。
【解决方案2】:

好吧,唯一的方法是构建站点地图并将指向 xml 站点地图文件的链接添加到每个页面;通过谷歌网站管理员工具提交您的站点地图。

【讨论】:

  • 我在某处读到 escape_fragment 可以完成这项工作?这可以适用于我的情况吗?如果可以,怎么做?如果不是...您建议使用 f.e. 等链接手动创建站点地图。 mysite.com#!about,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
相关资源
最近更新 更多