Robots.txt协议详解及阅读说明

Robots.txt协议详解及阅读说明

robots.txt 是网站用来让网络抓取工具知道他们是否应该抓取页面的文件。您应该尊重该偏好,因为不这样做会很容易检测到您的机器人,否则您可能会面临法律后果。

让我们学习如何在网络抓取时阅读 robots.txt!

Web Scraping 中的 robots.txt 是什么?

Robots Exclusion Protocol (REP) 将robots.txt设置为标准化文件,以指示允许抓取网站的哪些部分,Google 对其进行了推广

以下是取自Yahoo Finance的 robots.txt 示例:

User-agent: *
Sitemap: https://finance.yahoo.com/sitemap_en-us_desktop_index.xml
Sitemap: https://finance.yahoo.com/sitemap_en-us_quotes_index.xml
Sitemap: https://finance.yahoo.com/sitemaps/finance-sitemap_index_US_en-US.xml.gz
Sitemap: https://finance.yahoo.com/sitemaps/finance-sitemap_googlenewsindex_US_en-US.xml.gz
Disallow: /r/
Disallow: /_finance_doubledown/
Disallow: /nel_ms/
Disallow: /caas/
Disallow: /__rapidworker-1.2.js
Disallow: /__blank
Disallow: /_td_api
Disallow: /_remote

User-agent:googlebot
Disallow: /m/
Disallow: /screener/insider/
Disallow: /caas/
Disallow: /fin_ms/

User-agent:googlebot-news
Disallow: /m/
Disallow: /screener/insider/
Disallow: /caas/
Disallow: /fin_ms/

如何从网站获取 robots.txt 文件?

/robots.txt您通常通过向网站域的根目录发送 HTTP 请求并附加到 URL 的末尾来检索网站的 robots.txt 。例如,要检索 的规则https://www.g2.com/,您需要向 发送请求https://www.g2.com/robots.txt

您可以使用 cURL 或 Wget 等工具从命令行获取文件。或者,您可以这样做并使用 Python 中的 Requests 和 Beautiful Soup 库阅读它。

备注:如果您的请求失败并返回404 not found错误,则表示该网站没有 robots.txt 文件。并非所有站点都有这样的文件。

最常见的 robots.txt 规则是什么?

robots.txt 文件指示以下网页抓取方向之一:

  1. 网站上的所有页面都是可抓取的。
  2. 不应访问任何一个。
  3. 某些部分或文件应保持不变。它还可以指定抓取速率限制、访问次数和请求速率。

让我们看看您会在 robots.txt 文件中找到哪些说明。

用户代理

它决定了谁可以进行网页抓取。

语法是这样的:

User-agent: [value]
Disallow: [value]

如果User-agent有通配符 ( *),则表示允许所有人爬行。如果包含特定名称,例如AdsBot-Google,则表示在这种情况下仅允许使用 Google。

Disallow没有值时,允许所有页面进行抓取。如果您看到/,则意味着每个页面都是不允许的。如果您看到路径或文件名,例如/folder//file.html,我们会被指出不应抓取的内容。

的替代说明DisallowAllow,它说明了您应该访问的唯一资源。

抓取延迟

Crawl-delay设置您可以抓取每个新资源的速度(以秒为单位)。这有助于网站防止服务器过载,其后果是降低人类访问者的网站速度。

Crawl-delay: 7

小心这个,因为不遵循它可能会将您标记为恶意爬虫并很容易被阻止。

访问时间

它指定可以抓取网站的时间。格式为hhmm-hhmm,时区为UTC

Visit-time: 0200-1230

在这种情况下,允许机器人从 02:00 到 12:30 UTC。

请求率

它限制了爬虫可以同时向网站发出的请求数。格式为x/y,其中x是请求数,y是时间间隔(以秒为单位)。

Visit-time: 1/5

例如,1/5这意味着您只能每五秒请求一页。

网站地图

其他标签,例如Sitemap,告诉爬虫在哪里可以找到网站的 XML 站点地图。

请记住,并非所有网站都在其 robots.txt 中包含所有这些用于网络抓取机器人的规则,有些网站可能还有其他规则。

使用 robots.txt 抓取网站的步骤是什么

以下是您需要执行的操作,以尊重用于网络抓取的 robots.txt 文件:

  1. /robots.txt通过向网站域的根发送 HTTP 请求并添加到 URL 的末尾来检索网站的 robots.txt 。
  2. 解析分析文件内容,了解网站的抓取规则。
  3. 检查网站是否为您的用户代理指定了任何“禁止”或“允许”规则。
  4. 查找您必须遵守的任何指定的爬网速率限制或访问时间。
  5. 确保您的抓取程序遵守规则。
  6. 按照 robots.txt 文件中设置的规则抓取网站。

备注:虽然网站所有者使用 robots.txt 来控制对其网站的访问,但您的 bot 可能会被允许但被阻止。您需要了解验证码、IP 阻止和其他可能无意中阻止您的挑战。为避免这种情况,请查看我们关于网络抓取最佳实践的文章。

使用 robots.txt 文件的优点和缺点是什么?

为了总结我们对 robots.txt 文件的概述,我们将讨论它们在网络抓取方面的优缺点。

👍优点:

  • robots.txt 会通知您可以抓取哪些页面。
  • 它会让您知道网站是否设置了请求速率限制或时间范围。

👎缺点:

  • 如果您不遵守 robots.txt 规则,可能会采取法律行动。
  • 如果您忽略该文件,您的抓取工具可能很容易被阻止。

结论

正如我们所见,阅读 robots.txt 是成功进行网络抓取和避免不必要问题的关键。此外,我们还学习了如何理解该文件。

如果您仍然被阻止,您可能面临反机器人保护。

类似文章