首页 > 其他分享 >【网络爬虫笔记】爬虫Robots协议语法详解

【网络爬虫笔记】爬虫Robots协议语法详解

时间:2023-09-06 15:32:41浏览次数:39  
标签:协议 抓取 搜索引擎 详解 Disallow 爬虫 Robots

Robots协议是指一个被称为Robots Exclusion Protocol的协议。该协议的主要功能是向网络蜘蛛、机器人等搜索引擎爬虫提供一个标准的访问控制机制,告诉它们哪些页面可以被抓取,哪些页面不可以被抓取。本文将进行爬虫Robots协议语法详解,同时提供相关代码和案例。

  1. Robots协议的基本语法

Robots协议的基本语法如下:

User-agent: [user-agent name] Disallow: [URL string not to be crawled]

其中,User-agent用来指定搜索引擎爬虫的名称,Disallow用来指定不允许被搜索引擎爬虫抓取的页面URL。

例如,以下是一段Robots协议文件的示例:

User-agent: Googlebot
Disallow: /private/
Disallow: /admin/
Disallow: /login/

在上述示例中,我们指定了Googlebot这个搜索引擎的名称,并对/private/、/admin/、/login/三个页面进行了禁止抓取的设置。

  1. Robots协议的常用参数

Robots协议还有一些常用的参数,包括:

  • Allow:允许搜索引擎爬虫访问的页面URL;
  • Sitemap:指定网站地图的URL,在搜索引擎爬虫抓取站点时会提供该URL,方便搜索引擎获取整个站点的结构信息;
  • Crawl-delay:指定搜索引擎爬虫的抓取时间间隔,单位为秒。

例如,以下是一段Robots协议文件的示例:

User-agent: Googlebot
Disallow: /private/
Disallow: /admin/
Disallow: /login/
Allow: /public/
Sitemap: http://www.example.com/sitemap.xml
Crawl-delay: 10

在上述示例中,我们增加了Allow参数,允许搜索引擎爬虫访问/public/路径下的页面。同时指定了站点地图的URL为http://www.example.com/sitemap.xml,以及搜索引擎爬虫的抓取时间间隔为10秒。

  1. Robots协议案例

接下来通过一个实际的案例来说明如何使用Robots协议限制搜索引擎爬虫的访问。

假设我们要制作一个电商网站,并且不希望搜索引擎爬虫抓取我们的购物车页面。

首先,我们需要在网站的根目录下创建一个名为robots.txt的文件,并在其中指定不希望搜索引擎爬虫抓取的页面URL,示例代码如下:

User-agent: *
Disallow: /cart/

在上述代码中,我们使用了*通配符,表示适用于所有搜索引擎爬虫,同时指定不允许访问/cart/路径下的页面。

这样搜索引擎爬虫就会在访问我们网站时先读取该Robots协议文件,并根据协议文件的内容决定是否抓取我们的购物车页面。

  1. Python实现Robots协议

Python中可以使用urllib库中的robotparser模块来实现Robots协议的解析和使用,示例代码如下:

import urllib.robotparser

rp = urllib.robotparser.RobotFileParser()
rp.set_url("http://www.example.com/robots.txt")
rp.read()

if rp.can_fetch("Googlebot", "http://www.example.com/cart/"):
    print("Googlebot is allowed to fetch the content!")
else:
    print("Googlebot is not allowed to fetch the content!")

在上述代码中,我们首先创建一个RobotFileParser对象,指定Robots协议文件的URL,并读取协议文件的内容。然后使用can_fetch()方法判断指定的搜索引擎爬虫是否被允许抓取指定的URL。

总结:

Robots协议是一个网站管理标准,通过在网站的根目录下创建robots.txt文件,可以规定搜索引擎爬虫对网站内容进行抓取的规则。Robots协议具有简洁易懂、执行效果稳定等特点,是网站管理员进行搜索引擎优化的重要工具。

标签:协议,抓取,搜索引擎,详解,Disallow,爬虫,Robots
From: https://blog.51cto.com/u_16022798/7387701

相关文章

  • 恶意爬虫防护
    引言如果您仔细分析过任何一个网站的请求日志,您肯定会发现一些可疑的流量,那可能就是爬虫流量。根据Imperva发布的《2023ImpervaBadBotReport》在2022年的所有互联网流量中,47.4%是爬虫流量。与2021年的42.3%相比,增长了5.1%。在这些爬虫流量中,30.2%是恶意爬虫,比2021年的27.7%增......
  • uiautomator2自动化测试工具详解
    前言个人观点觉得uiautomator2的运行方式比appium要简单许多,因为appium依赖性方较多,尤其是在做iOS连接appium时需要xcode中编译的webdriveragent工具来协助运行自动化环境,特别容易在运行中自动中断自己就删除了......
  • Swagger详解
    SpringBoot是一个基于Spring框架的轻量级开源框架,它的出现极大地简化了Spring应用的搭建和开发。在开发过程中,接口文档是非常重要的一环,它不仅方便开发者查看和理解接口的功能和参数,还能帮助前后端开发协同工作,提高开发效率。本文将介绍如何在SpringBoot中使用Swagger......
  • JVM运行时数据区详解
    Java内存区域详解(重点)详解JVM运行时数据区之程序计数器详解JVM运行时数据区之堆内存(qq.com)JDK1.7&JDK1.8的不同Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK1.7JDK1.8线程私有的:程序计数器虚拟机栈本地方法栈线程共......
  • MyBatis-Plus详解
    MyBatis-Plus是一个功能强大、易于使用的MyBatis增强工具,在MyBatis的基础上只做增强不做改变,它提供了许多实用的功能和扩展,可以极大地简化和提高开发效率。特性:l 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑l 损耗小:启动即会自动注入基本CURD,性能基本无损......
  • 初识网络爬虫基本原理
    首先精心选择一些URL,把这些精心选择的URL放入URL队列中,从对列中捉取代取的URL读取URL之后开始解析DNS,把这些URL下载下来放入网页库中。基本流程就是:发送请求-获取响应内容-解析内容-保存数据。从网络爬虫的角度可以把互联网分为五种1;已下载未过期网页2;已下载过期网页3;待下载网页4;可......
  • 【愚公系列】2023年09月 WPF控件专题 Calendar控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • MySQL分页查询详解:优化大数据集的LIMIT和OFFSET
    最近在工作中,我们遇到了一个需求,甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标,我编写了一条SQL查询语句,并请求DBA协助导出数据。尽管工单数量并不多,只有3000多条,但每个工单都包含了大量的信息。DBA进行了多次导出操作,不幸的是,每次尝试导出都导致......
  • nginx配置详解
    worker_processes设置worker的数量,Nginx的进程模型采用的是master、worker模式,一个master负责协调,多个worker负责与客户端交互。此处设置为auto即可events设置使用的模型和每个worker的连接数。Linux操作系统中模型建议使用epoll。worker的连接数通常设置为10240......
  • 【Python爬虫笔记】爬虫代理IP与访问控制
    一、前言在进行网络爬虫的开发过程中,有许多限制因素阻碍着爬虫程序的正常运行,其中最主要的一点就是反爬虫机制。为了防止爬虫程序在短时间内大量地请求同一个网站,网站管理者会使用一些方式进行限制。这时候,代理IP就是解决方案之一。本文主要介绍如何在爬虫程序中使用代理IP以应对反......