识别搜索引擎抓取工具

时间:2010-09-16 16:00:35

标签: ajax web web-crawler

我正在开发一个通过AJAX加载数据的网站。我还希望整个网站可以被谷歌和雅虎等搜索引擎抓取。 我想制作2个版本的网站...... [1]当用户来时,超链接应该像GMAIL一样工作(#'ed超链接) [2]当爬虫来时,超链接应该正常工作(AJAX模式关闭)

如何识别Crawler?

4 个答案:

答案 0 :(得分:1)

通常可以使用User-Agent HTTP标头来标识爬网程序。请专门查看this page以获取抓取工具的用户代理列表。一些例子是:

谷歌:

此外,以下是使用各种语言获取用户代理字符串的一些示例:

PHP:
$_SERVER['HTTP_USER_AGENT']

Python Django:
request.META["HTTP_USER_AGENT"]

Ruby On Rails:
request.env["HTTP_USER_AGENT"]

...

答案 1 :(得分:0)

抓取工具的http标头应包含User-Agent字段。您可以在服务器上查看此字段。

Here是TONS of User-Agents的列表。一些例子:

Google robot 66.249.64.XXX ->
Googlebot/2.1 ( http://www.googlebot.com/bot.html)       

Harvest-NG web crawler used by search.yahoo.com 
Harvest-NG/1.0.2     

答案 2 :(得分:0)

您不应向您的用户和抓取工具展示不同形式的网站。如果Google发现您这样做,他们可能会因此而降低您的搜索排名。此外,如果您的版本仅适用于抓取工具,则可能会在您没有注意到的情况下中断,从而为搜索引擎提供错误的数据。

我建议建立一个不需要AJAX的网站版本,并在每个页面上都有非AJAX版本的显着链接。这也可以帮助那些可能不喜欢AJAX版本的用户,或者那些没有能够正确处理它的浏览器的用户。

答案 3 :(得分:0)

这种方法让你的生活变得困难。它要求您维护两个完全独立的站点版本,并尝试猜测要为任何给定用户提供的版本。搜索引擎不是唯一没有JavaScript可用和启用的用户代理。

遵循unobtrusive JavaScriptbuild on things that work的原则。这样就无需确定要向用户提供哪个版本,因为JS在离开正常工作的HTML版本时可以正常失败。

相关问题