网络爬虫简介
已发表: 2016-03-08当我与人们谈论我的工作以及 SEO 是什么时,他们通常会很快得到它,或者他们会照常行事。 良好的网站结构,良好的内容,良好的背书反向链接。 但有时,它会变得更具技术性,我最终会谈论搜索引擎抓取您的网站,而我通常会失去它们……
为什么要抓取网站?
网络爬虫始于映射互联网以及每个网站如何相互连接。 搜索引擎也使用它来发现和索引新的在线页面。 网络爬虫还用于通过测试网站并分析是否发现任何问题来测试网站的漏洞。
现在,您可以找到抓取您网站的工具,以便为您提供见解。 例如,OnCrawl 提供有关您的内容和现场 SEO 或 Majestic 的数据,它提供有关指向页面的所有链接的见解。
爬虫用于收集信息,然后可以使用和处理这些信息来对文档进行分类并提供有关所收集数据的见解。
任何懂一点代码的人都可以构建爬虫。 然而,制作一个高效的爬虫更加困难并且需要时间。
它是如何工作的 ?
为了爬取网站或网络,您首先需要一个入口点。 机器人需要知道您的网站存在,以便他们可以来查看它。 回到过去,您会将您的网站提交给搜索引擎,以便告诉他们您的网站在线。 现在,您可以轻松地建立一些指向您的网站的链接,瞧,您就在循环中!
一旦爬虫登陆您的网站,它就会逐行分析您的所有内容,并跟踪您拥有的每个链接,无论它们是内部的还是外部的。 依此类推,直到它到达没有更多链接的页面,或者遇到 404、403、500、503 之类的错误。
从更技术的角度来看,爬虫使用 URL 的种子(或列表)工作。 这被传递给将检索页面内容的 Fetcher。 然后将该内容移至链接提取器,该提取器将解析 HTML 并提取所有链接。 这些链接被发送到存储处理器,正如它的名字所说,存储它们。 这些 URL 还将通过页面过滤器,该过滤器会将所有有趣的链接发送到 URL-seen 模块。 该模块检测 URL 是否已经被看到。 如果不是,它会被发送到 Fetcher,它将检索页面的内容等等。
请记住,蜘蛛无法抓取某些内容,例如 Flash。 GoogleBot 现在正在正确抓取 Javascript,但有时它不会抓取任何内容。 图片不是谷歌在技术上可以抓取的内容,但它变得足够聪明,可以开始理解它们!
如果不告诉机器人相反,它们会爬行所有东西。 这是 robots.txt 文件变得非常有用的地方。 它告诉爬虫(它可以是每个爬虫特定的,即 GoogleBot 或 MSN Bot - 在此处了解有关机器人的更多信息)他们无法爬取哪些页面。 例如,假设您有使用构面的导航,您可能不希望机器人抓取所有这些,因为它们几乎没有附加值,并且会使用抓取预算。 使用这条简单的线将帮助您防止任何机器人爬行它
用户代理: *
禁止:/文件夹-a/
这告诉所有机器人不要爬取文件夹 A。
用户代理:GoogleBot
禁止:/repertoire-b/
另一方面,这指定只有 Google Bot 不能抓取文件夹 B。
您还可以在 HTML 中使用指示,它告诉机器人不要使用 rel=”nofollow” 标签跟踪特定链接。 一些测试表明,即使在链接上使用 rel=”nofollow” 标签也不会阻止 Googlebot 关注它。 这与其目的相矛盾,但在其他情况下会很有用。
[案例研究] 通过提高 Googlebot 的网站可抓取性来提高知名度
您提到了抓取预算,但它是什么?
假设您有一个已被搜索引擎发现的网站。 他们会定期查看您是否在网站上进行了任何更新并创建了新页面。
每个网站都有自己的抓取预算,具体取决于几个因素,例如您的网站拥有的页面数量和它的健全性(例如,如果它有很多错误)。 您可以通过登录 Search Console 轻松快速了解您的抓取预算。
您的抓取预算将确定机器人每次访问您的网站时抓取的页面数量。 它与您网站上的页面数量成正比,并且已经被抓取。 有些页面比其他页面更频繁地被抓取,特别是如果它们定期更新或者它们是从重要页面链接的。
例如,您的家是您的主要入口点,经常会被抓取。 如果您有博客或类别页面,如果链接到主导航,它们将经常被抓取。 博客也会经常被抓取,因为它会定期更新。 博客文章刚发布时可能会经常被抓取,但几个月后可能不会更新。
一个页面被抓取的次数越多,机器人认为它与其他页面相比就越重要。 这是您需要开始优化抓取预算的时候。
优化您的抓取预算
为了优化您的预算并确保您最重要的页面得到应有的关注,您可以分析您的服务器日志并查看您的网站是如何被抓取的:
- 您的首页被抓取的频率
- 您是否看到任何不那么重要的页面比其他更重要的页面被更多地抓取?
- 机器人在抓取您的网站时是否经常出现 4xx 或 5xx 错误?
- 机器人会遇到任何蜘蛛陷阱吗? (马修亨利写了一篇关于他们的精彩文章)
通过分析您的日志,您将看到您认为不太重要的页面被大量抓取。 然后,您需要深入挖掘您的内部链接结构。 如果它正在被抓取,它必须有很多指向它的链接。
您还可以使用 OnCrawl 修复所有这些错误(4xx 和 5xx)。 它将提高可抓取性和用户体验,这是一个双赢的案例。
爬行 VS 抓取?
爬行和抓取是用于不同目的的两种不同的东西。 抓取网站是登陆页面并跟随您在扫描内容时找到的链接。 然后爬虫将移动到另一个页面,依此类推。
另一方面,抓取是扫描页面并从页面中收集特定数据:标题标签、元描述、h1 标签或您网站的特定区域,例如价格列表。 抓取工具通常充当“人”,它们会忽略 robots.txt 文件中的任何规则,以表格形式归档并使用浏览器用户代理以免被检测到。
搜索引擎爬虫通常充当抓取工具,并且他们需要收集数据以便为他们的排名算法处理数据。 与抓取工具相比,他们不寻找特定数据,他们只是使用页面上的所有可用数据,甚至更多(加载时间是您无法从页面获得的)。 搜索引擎爬虫将始终将自己标识为爬虫,因此网站所有者可以知道他们上次访问其网站的时间。 这在您跟踪真实用户活动时非常有用。
所以现在你对爬网有了更多的了解,它是如何工作的以及为什么它很重要,下一步就是开始分析服务器日志了。 这将为您提供有关机器人如何与您的网站交互、他们经常访问哪些页面以及他们在访问您的网站时遇到多少错误的深入见解。
有关网络爬虫的更多技术和历史信息,您可以阅读“网络爬虫简史”