现代网络爬虫是使用 click 事件还是直接导航到锚标记上的 href

Do modern web crawlers use the click event or navigate directly to href on anchor tags?

本文关键字:导航 href 爬虫 网络 事件 click      更新时间:2023-09-26

我正在构建一个网站,我想让用户表现得很花哨,但希望网络爬虫仍然能够正确导航。

我有以下锚标签:

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

使用以下 jQuery:

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

这会杀死SEO还是我可以期望Google/Bing/etc按照我希望的那样行事并遵循/projects?我认为他们历史上只使用 href 值,但我知道 Google 现在正在评估一些 JavaScript。

我知道我不能为爬虫客户端包含 js,但知道会很有趣。对于科学...

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

我认为这个链接对你很有用。看起来Google确实将Javascript超链接纳入了帐户。

"使用像Lynx这样的文本浏览器来检查你的网站,因为大多数搜索引擎蜘蛛看到你的网站就像Lynx一样。如果JavaScript,cookie,会话ID,框架,DHTML或Flash等花哨的功能使您无法在文本浏览器中看到所有网站,那么搜索引擎蜘蛛可能无法抓取您的网站。

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

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

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

我有一个页面在jQuery UI对话框中打开一些锚点。这个锚点或锚点后面的内容永远不会被索引,所以我认为谷歌机器人停在e.preventDefault().

有人知道如何解决这个问题吗?我会尝试返回 false 是否可以做到这一点。