Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

urllib.robotparser - Parser cho robots.txt trong Python


Chủ sở hữu trang web dùng tệp /robots.txt để đưa ra hướng dẫn về trang web của họ cho web robots; điều này được gọi là The Robots Exclusion Protocol (Giao thức loại trừ Robot). Tệp này là một hệ thống kiểm soát truy cập dựa trên văn bản đơn giản cho các chương trình máy tính tự động truy cập tài nguyên web. Chương trình như vậy được gọi là spiders, crawlers, v.v. Tệp chỉ định định danh user agent theo sau là danh sách URL mà agent không được phép truy cập.

Ví dụ

# robots.txt
Sitemap: https://example.com/sitemap.xml
User-agent: *
Disallow: /admin/
Disallow: /downloads/
Disallow: /media/
Disallow: /static/

Tệp này thường được đặt trong thư mục cấp cao nhất của web server của bạn.

Module urllib.robotparser của Python cung cấp lớp RobotFileParser. Nó trả lời câu hỏi về việc một user agent cụ thể có thể fetch (tải) một URL trên trang web đã xuất bản tệp robots.txt hay không.

Các phương thức sau được định nghĩa trong lớp RobotFileParser:

set_url(url)

Phương thức này đặt URL tham chiếu đến tệp robots.txt.

read()

Phương thức này đọc URL robots.txt và cung cấp cho parser.

parse()

Phương thức này phân tích các dòng đối số.

can_fetch()

Phương thức này trả về True nếu useragent có thể fetch url theo quy tắc trong robots.txt.

mtime()

Phương thức này trả về thời gian tệp robots.txt được fetch lần cuối.

modified()

Phương thức này đặt thời gian robots.txt được fetch lần cuối.

crawl_delay()

Phương thức này trả về giá trị tham số Crawl-delay trong robots.txt cho useragent đang hỏi.

request_rate()

Phương thức này trả về nội dung tham số Request-rate dưới dạng named tuple RequestRate(requests, seconds).

Ví dụ

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()