现代网络爬虫是否使用click事件或直接导航到锚标签上的href?

时间:2012-08-19 21:26:51

标签: javascript html seo web-crawler

我正在构建一个我希望用户喜欢的网站,但希望网络抓取工具仍能正常导航。

我有以下锚标记:

<a class="overrideClick" href="/projects">Projects</a>

使用以下jQuery:

$(document).on('click', '.overrideClick', function(e) { 
    e.preventDefault(); 
    ( ... ) 
});

这会扼杀搜索引擎优化还是我可以期待Google / Bing /等采取行动,因为我希望并关注/项目?我认为他们历史上只使用了href值,但我知道谷歌现在正在评估一些JavaScript。

我知道我可以不包括抓取客户端的js,但知道它会很有趣。对于科学......

4 个答案:

答案 0 :(得分:6)

我很确定在你的href中有一个URL并且在脚本中覆盖行为的错误是正确的方法。这样,如果机器人无法执行JS,他们仍然会导航到您的页面。如果可以,他们会看到您加载的任何新内容(假设您正在加载与基本链接href和链接文本相关的内容)。

答案 1 :(得分:2)

我认为this链接对您有用。 Google似乎确实将Javascript超链接带入了帐户。

答案 2 :(得分:1)

“使用像Lynx这样的文本浏览器来检查您的网站,因为大多数搜索引擎蜘蛛都会像Lynx一样看到您的网站。如果JavaScript,Cookie,会话ID,框架,DHTML或Flash等奇特功能让您远离在文本浏览器中查看您的所有网站,然后搜索引擎蜘蛛可能无法抓取您的网站。“

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=35769

我所见过的所有这些只是分析标记来确定ref,因为它们通常将这些地址取出并将它们传递给其他分布式代理进行处理。我知道现在很少会看到javascript,但是如果你只是在所有这些中包含href,那么你将获得它们。

答案 3 :(得分:0)

似乎Google机器人不喜欢e.preventDefault()

我有一个页面可以在jQuery UI对话框中打开一些锚点。锚点或锚点背后的内容从未编入索引,因此我认为Google僵尸程序在e.preventDefault()停止。

有人知道如何解决这个问题? 如果返回false,我会尝试。