เจ้าของเว็บไซต์ใช้ไฟล์ /robots.txt เพื่อให้คำแนะนำเกี่ยวกับไซต์ของตนแก่โรบ็อตเว็บ สิ่งนี้เรียกว่า The Robots Exclusion Protocol ไฟล์นี้เป็นระบบควบคุมการเข้าใช้ข้อความอย่างง่ายสำหรับโปรแกรมคอมพิวเตอร์ที่เข้าถึงทรัพยากรบนเว็บโดยอัตโนมัติ โปรแกรมดังกล่าวเรียกว่าสไปเดอร์ โปรแกรมรวบรวมข้อมูล ฯลฯ ไฟล์ระบุตัวระบุตัวแทนผู้ใช้ตามด้วยรายการ URL ที่ตัวแทนอาจไม่สามารถเข้าถึงได้
ตัวอย่าง
#robots.txt Sitemap: https://example.com/sitemap.xml User-agent: * Disallow: /admin/ Disallow: /downloads/ Disallow: /media/ Disallow: /static/
ไฟล์นี้มักจะอยู่ในไดเร็กทอรีระดับบนสุดของเว็บเซิร์ฟเวอร์ของคุณ
โมดูล urllib.robotparser ของ Python มีคลาส RobotFileParser โดยจะตอบคำถามว่าตัวแทนผู้ใช้รายใดสามารถดึง URL บนเว็บไซต์ที่เผยแพร่ไฟล์ robots.txt ได้หรือไม่
วิธีการต่อไปนี้ถูกกำหนดในคลาส RobotFileParser
set_url(url)
เมธอดนี้ตั้งค่า URL ที่อ้างอิงถึงไฟล์ robots.txt
อ่าน()
เมธอดนี้จะอ่าน URL ของ robots.txt และฟีดไปยัง parser
แยกวิเคราะห์()
เมธอดนี้แยกวิเคราะห์อาร์กิวเมนต์เส้น
can_fetch()
เมธอดนี้คืนค่า True ถ้า useragent สามารถดึง url ตามกฎที่มีอยู่ใน robots.txt
mtime()
เมธอดนี้จะคืนค่าเวลาที่ดึงไฟล์ robots.txt ครั้งล่าสุด
modified()
เมธอดนี้กำหนดเวลาที่เรียก robots.txt ครั้งล่าสุด
crawl_delay()
เมธอดนี้คืนค่าของพารามิเตอร์ Crawl-delay robots.txt สำหรับ useragent ที่เป็นปัญหา
request_rate()
เมธอดนี้ส่งคืนเนื้อหาของพารามิเตอร์ Request-rate เป็น tuple RequestRate ที่มีชื่อ (requests, seconds)
ตัวอย่าง
from urllib import parse from urllib import robotparser AGENT_NAME = 'PyMOTW' URL_BASE = 'https://example.com/' parser = robotparser.RobotFileParser() parser.set_url(parse.urljoin(URL_BASE, 'robots.txt')) parser.read()