爬虫学习笔记之Robots协议相关整理

定义

Robots协议也称作爬虫协议、机器人协议,全名为网络爬虫排除标准,用来告诉爬虫和搜索引擎哪些页面可以爬取、哪些不可以。它通常是一个叫做robots.txt的文本文件,一般放在网站的根目录下。

robots.txt文件的样例

  • 对有所爬虫均生效,只能爬取public目录
html 复制代码
User-agent:*
Disallow:/
Allow:/public/
  • 禁止所有爬虫访问所有目录
html 复制代码
User-agent:*
Disallow:/
  • 允许所有爬虫访问所有目录
html 复制代码
User-agent:*
Disallow:
  • 禁止所有爬虫访问网站某些目录也可以写做
html 复制代码
User-agent:*
Disallow:/private/
Disallow:/tmp/
  • 只允许某一个爬虫访问所有目录
html 复制代码
User-agent:WebCrawler
Disallow:
User-agent:*
Disallow:/

一些常见的爬虫名称

robotparser使用

该模块提供了一个类:RobotFileParser,它可以根据某网站的robots.txt文件判断一个爬虫是否有权限爬取这个网页。

RobotFileParser类的常用方法

  • set_url:用来设置robots.txt文件的链接。
  • read:读取robots.txt文件进行分析。
  • parse:用来解析robots.txt文件
  • can_fetch:该方法有两个参数,第一个是User-Agent,第二个是要抓取的URL。返回结果是True或者False,表示User-Agent指示的搜索引擎是否可以抓取这个URL。
  • mtime:返回上次抓取和分析robots.txt文件的时间。
  • modified:它对长时间分析和抓取的搜索爬虫很有帮助,可以将当前时间设置为上次抓取和分析robots.txt文件的时间

代码示例

html 复制代码
from urllib.robotparser import RobotFileParser

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

print(rp.can_fetch("Baiduspider", "http://www.baidu.com"))
print(rp.can_fetch("Baiduspider", "http://www.baidu.com/homepage/"))
print(rp.can_fetch("Googlebot", "http://www.baidu.com/homepage/"))
  • 这里能看到,Googlebot是被严格禁止了的,所以为false

以上,便是robots协议的学习笔记整理,来源于当前正在看的一本书--《Python3网络爬虫开发实战》。后面会持续学习并整理的。

感谢阅读~

相关推荐
流浪001几秒前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·python
鸿芯微控科技5 分钟前
MFC关断后还有流量怎么办?零流量、阀门泄漏、压差与Python分析
c++·python·mfc·质量流量控制器·关断泄漏·零流量测试
点云-激光雷达-Slam-三维牙齿2 小时前
速度起飞 笔记本电脑6G显卡llama运行Qwen3.6 35BA3B MTP 大模型
人工智能·python·电脑·llama
言乐63 小时前
Python游戏水平测试辅助系统
开发语言·python·游戏·django·pygame
从零开始学习人工智能9 小时前
【踩坑实录】WSL2 解决 onnxruntime\-gpu ImportError: libcudart\.so\.13 无 CUDA13 运行库问题
python
hsjiasb10 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
卷无止境10 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python
zhanghaha131411 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
Python私教11 小时前
API 输出模型怎么设计:从 model_dump() 到显式展示层
python·fastapi
Python私教11 小时前
本地 AI 工具服务该绑定 127.0.0.1 还是 0.0.0.0?
python·fastapi