js抓取网页内容(Google爬爬虫虫如如何何抓抓取取JavaScript的内内容)
优采云 发布时间: 2022-01-23 00:02js抓取网页内容(Google爬爬虫虫如如何何抓抓取取JavaScript的内内容)
Google Crawlers 如何抓取 JavaScript 内容 我们测试了 Google Crawlers 如何抓取 JavaScript,这就是我们学到的。认为 Google 可以处理 JavaScript?再想一想。A udette A udette 分享了一系列测试的结果,他和他的同事测试了 Google 和 收录 会抓取哪些类型的 JavaScript 功能。长话短说 1. 我们已经进行了一系列测试,并确认 Google 可以通过多种方式执行和 收录 JavaScript。我们还确认 Google 可以渲染整个页面并读取 DOM,从而 收录 动态生成内容。2. DOM 中的 SEO 信号(页面标题、元描述、规范标签、元机器人标签等)都得到了处理。动态插入 DOM 的内容也可以被爬取和收录。此外,在某些情况下,DOM 甚至可能优先于 T ML 源语句。虽然这需要更多的工作,但这是我们完成的几个测试之一。简介:Google 执行 JavaScript 并读取 DOM 自 2008 年以来,Google 一直在成功地抓取 JavaScript,但可能是以某种方式。
而今天,很明显,谷歌只能计算出他们爬取的 JavaScript 和 收录 的类型,并且在渲染整个网页方面取得了重大进展(尤其是在过去的 12 到 18 个月内)。在 Merkle,我们的 SEO 技术团队希望更好地了解 Google 爬虫可以抓取哪些类型的 JavaScript 事件以及 收录。经过研究,我们发现了令人瞠目结舌的结果,并证实 Google 只能执行各种 JavaScript 事件和收录动态生成的内容。如何?Google 可以阅读 DOM。什么是 DOM?许多 SEO 了解文档对象模型 (DOM) 是什么。当浏览器请求一个页面时会发生什么,以及 DOM 是如何参与的。在 Web 浏览器中使用时,DOM 本质上是一个应用程序接口或 API,用于标记和结构化数据(例如 TML 和 XML)。此界面允许 Web 浏览器将它们组合成文档。DOM 还定义了如何访问和操作结构。尽管 DOM 是一种独立于语言的 API(捆绑在特定的编程语言或库中),但它通常用于 JavaScript 和 Web 应用程序中的动态内容。
DOM 表示将网页连接到编程语言的接口或“桥梁”。解析 T ML 并执行 JavaScript 的结果是 DOM。网页的内容(仅)是源代码,即 DOM。这使得它非常重要。JavaScript 如何通过 DOM 接口工作。我们很高兴地发现 Google 可以读取 DOM 并解析信号并动态插入内容,例如标题标签、页面文本、头部标签和元注释(例如 rel=canonical)。在那里阅读完整的细节。这一系列的测试和结果因为我们想知道会爬取哪些 JavaScript 功能以及 收录,所以我们单独在 Google 爬虫上创建了一系列测试。确保通过创建控件独立理解 URL 活动。下面,让' s 详细分解了一些有趣的测试结果。它们分为5类:1、JavaScript Redirects2、JavaScript Links3、动态插入内容4、动态插入元数据和页面元素5、一个带有rel=" Great nofollow 示例”:用于测试 Google 爬虫对 JavaScript 的理解程度的页面。1. JavaScript 重定向我们首先测试了常见的 JavaScript 重定向。以相同方式表达的 URL 会产生什么结果?我们为两个测试选择了 window .location 对象: Test A 使用绝对路径 URL 调用 window .location,而 Test B 使用相对路径。元数据和页面元素的动态插入 5、一个 rel="nofollow 的好例子":一个测试 Google 爬虫对 JavaScript 理解程度的页面。1. JavaScript 重定向我们首先测试了常见的 JavaScript 重定向。以相同方式表达的 URL 会产生什么结果?我们为两个测试选择了 window .location 对象: Test A 使用绝对路径 URL 调用 window .location,而 Test B 使用相对路径。元数据和页面元素的动态插入 5、一个 rel="nofollow 的好例子":一个测试 Google 爬虫对 JavaScript 理解程度的页面。1. JavaScript 重定向我们首先测试了常见的 JavaScript 重定向。以相同方式表达的 URL 会产生什么结果?我们为两个测试选择了 window .location 对象: Test A 使用绝对路径 URL 调用 window .location,而 Test B 使用相对路径。
结果:重定向很快被谷歌跟踪。从 收录 开始,它们被解释为 301 - 最终状态 URL 替换了 Google 收录 中的重定向 URL。在随后的测试中,我们执行了 JavaScript 重定向到同一站点上的新页面,在权威页面上具有完全相同的内容。而原创 URL 是 Google 的热门查询的首页。结果:果然,重定向被谷歌跟踪了,原来的页面不是收录。而新的 URL 是 收录 并立即在同一个查询页面中排名相同的位置。这让我们感到惊讶,因为从排名的角度来看,它似乎表明 JavaScript 重定向的行为(有时)很像永久 301 重定向。下次您的客户想要为他们的 网站 完成 JavaScript 重定向移动时,您可能需要回答:或回答:“请。” 因为这似乎有转移排名信号的关系。支持这一结论的是对 Google 指南的引用:使用 JavaScript 重定向用户可能是一种法律做法。例如,如果您将登录用户重定向到内部页面,您可以使用 JavaScript 执行此操作。在检查 JavaScript 或其他重定向方法时,请确保您的网站遵循我们的指南并考虑其意图。
请记住,301 重定向到您的 网站 是最好的,但如果您无权访问您的 网站 服务器,则可以使用 JavaScript 重定向。2. JavaScript 链接我们测试了不同编码的相同类型的 JS 链接。我们测试下拉菜单的链接。搜索引擎历来能够跟踪这些类型的链接。我们想确定是否会跟踪 onchange 事件处理程序。重要的是,这只是我们需要的特定执行类型:其他更改的影响,但是像上面的 JavaScript 重定向这样的强制操作。示例:Google Work 页面的语言选择下拉菜单。结果:链接被完全爬取并被关注。我们还测试了常见的 JavaScript 链接。以下是最常见的 JavaScript 链接类型,而传统的 SEO 建议使用纯文本。
我们的下一个测试是进一步测试事件处理程序,例如上面的 onchange 测试。具体来说,我们想利用鼠标移动事件处理程序,然后隐藏 URL 变量,该变量仅在事件处理程序(本例中的 onmousedown 和 onmouseout)被触发时执行。结果:链接被完全爬取并被关注。构建链接:我们知道 Google 可以执行 JavaScript,但希望确保他们可以读取代码中的变量。所以在这个测试中,我们连接可以构造 URL 字符串的字符。结果:链接被完全爬取并被关注。3. 动态插入内容 内容很明显,主要有以下几点:文本、图片、链接、导航的动态插入。高质量的文本内容对于搜索引擎理解网页主题和内容至关重要。在这个充满活力的时代< @网站,其重要性不容置疑。这些测试旨在检查在两个相同场景中动态插入文本的结果。1)。测试搜索引擎是否可以从页面的 T ML 源代码中动态统计插入的文本。2)。测试搜索引擎是否可以计算来自页面 TML 源外部(在外部 JavaScript 文件中)的动态插入文本。结果:在这两种情况下,文本都被爬取和 收录,并且页面根据该内容进行排名。测试搜索引擎是否可以计算来自页面 TML 源外部(在外部 JavaScript 文件中)的动态插入文本。结果:在这两种情况下,文本都被爬取和 收录,并且页面根据该内容进行排名。测试搜索引擎是否可以计算来自页面 TML 源外部(在外部 JavaScript 文件中)的动态插入文本。结果:在这两种情况下,文本都被爬取和 收录,并且页面根据该内容进行排名。
凉爽的!为了了解更多信息,我们测试了一个用 JavaScript 编写的客户端全局导航,其中收录通过 document.writeIn 函数插入的链接,并确定它们已被完全抓取和跟踪。需要注意的是:谷歌可以解释使用AngularJS框架和T ML5历史API(pushState)构建的网站,可以渲染和收录,可以像传统的静态网页一样进行排名。这就是阻止 Google 的爬虫获取外部文件和 JavaScript 很重要的原因,也可能是 Google 将其从支持 Ajax 的 SEO 指南中删除的原因。当您可以简单地呈现整个页面时,谁需要 TML 快照?经过测试,结果证明无论内容类型如何,结果都是一样的。例如,图像被抓取并将 收录 加载到 DOM 中。我们甚至通过动态生成 data-vocabulary .org 结构化数据并将其插入到 DOM 中进行了制作面包屑(breadcrumb)的测试。结果?成功插入的面包屑出现在搜索结果(搜索引擎结果页面)中。值得注意的是,Google 现在建议对结构化数据使用 JSON-LD 标记。
我相信将来会有更多基于此的。4. 动态插入元数据数据和页面页面元素元素我们将各种 SEO 关键标签动态插入 DOM:标题元素元描述元机器人规范标签结果:在所有情况下,标签都可以被抓取并表现得像元素在 TML 源代码中。一个有趣的补充实验可以帮助我们理解优先级。当有一个相互矛盾的信号时,哪一个会赢?如果源代码中有 noindex 和 nofollow 标签,而 DOM 中有 noindex 和 follow 标签,会发生什么?在此协议中,TTP x-robots 响应标头的行为如何表现为另一个变量?这将是未来综合测试的一部分。但是,我们的测试表明,当发生冲突时,Google 会忽略源代码中的标签,转而使用 DOM。5. rel="nofollow" 的一个重要示例 我们想测试 Google 如何处理出现在源和 DOM 中的链接级别的 nofollow 属性。我们还创建了一个没有应用 nofollow 的控件。对于 nofollow,我们分别测试源代码与 DOM 生成的注释。
源代码中的 nofollow 可以按我们预期的方式工作(没有链接)。DOM 中的 nofollow 不起作用(链接被跟踪,页面为 收录)。为什么?因为修改 DOM 中的 href 元素为时已晚:在执行添加 rel=”nofollow” 的 JavaScript 函数之前,Google 已准备好抓取链接并排队等待 URL。但是,如果将带有 href="nofollow" 的 a 元素插入到 DOM 中,则会跟踪 nofollow 和链接,因为它们是同时插入的。结果 从历史上看,各种 SEO 建议一直尽可能关注“纯文本”内容。而动态生成的内容、A JA X 和 JavaScript 链接会损害主要搜索引擎的 SEO。显然,这是谷歌面临的另一个问题。JavaScript 链接的行为类似于普通的 T ML 链接(这只是表面,我们知道幕后发生了什么)。JavaScript 重定向被视为 301 重定向。动态插入的内容,即使是 rel 规范注释等元标记,无论是在 T ML 源代码中,还是在初始 T ML 解析后触发 JavaScript 生成 DOM 都被同等对待。
Google 似乎能够完全呈现页面并理解 DOM,而不仅仅是源代码。极好的!(请记住允许 Google 的爬虫获取这些外部文件和 JavaScript。)Google 一直在创新,以惊人的速度将其他搜索引擎甩在后面。我们希望在其他搜索引擎中看到同样类型的创新。如果他们要在网络新时代保持竞争力并取得实质性进展,那就意味着更好地支持 T ML5、JavaScript 和动态网站。对于SEO来说,对以上基本概念和谷歌技术不了解的人,应该好好学习和学习,以赶上现在的技术。如果将 DOM 考虑在内,您可能会失去一半的份额。本文所表达的观点均由Search Engine Land(搜索引擎网站)提供,有些是由客座作者提供的。所有作者的名单。