urllib.robotparser --- Trình phân tích cú pháp cho robots.txt¶
Source code: Lib/urllib/robotparser.py
Mô-đun này cung cấp một lớp duy nhất, RobotFileParser, trả lời các câu hỏi về việc liệu một tác nhân người dùng cụ thể có thể tìm nạp URL trên trang web xuất bản tệp robots.txt hay không. Để biết thêm chi tiết về cấu trúc của tệp robots.txt, hãy xem http://www.robotstxt.org/orig.html.
- class urllib.robotparser.RobotFileParser(url='')¶
Lớp này cung cấp các phương thức để đọc, phân tích cú pháp và trả lời các câu hỏi về tệp
robots.txttại url.- set_url(url)¶
Đặt URL tham chiếu đến tệp
robots.txt.
- read()¶
Đọc
robots.txtURL và đưa nó vào trình phân tích cú pháp.
- parse(lines)¶
Phân tích đối số dòng.
- can_fetch(useragent, url)¶
Trả về
Truenếu useragent được phép tìm nạp url theo các quy tắc có trong tệprobots.txtđược phân tích cú pháp.
- mtime()¶
Trả về thời điểm tệp
robots.txtđược tìm nạp lần cuối. Điều này rất hữu ích cho các web nhện chạy lâu cần kiểm tra định kỳ các tệprobots.txtmới.
- modified()¶
Đặt thời gian tệp
robots.txtđược tìm nạp lần cuối đến thời điểm hiện tại.
- crawl_delay(useragent)¶
Trả về giá trị của tham số
Crawl-delaytừrobots.txtcho useragent được đề cập. Nếu không có tham số như vậy hoặc nó không áp dụng cho useragent được chỉ định hoặc mục nhậprobots.txtcho tham số này có cú pháp không hợp lệ, hãy trả vềNone.Added in version 3.6.
- request_rate(useragent)¶
Trả về nội dung của tham số
Request-ratetừrobots.txtdưới dạng named tupleRequestRate(requests, seconds). Nếu không có tham số như vậy hoặc nó không áp dụng cho useragent được chỉ định hoặc mục nhậprobots.txtcho tham số này có cú pháp không hợp lệ, hãy trả vềNone.Added in version 3.6.
Ví dụ sau đây minh họa cách sử dụng cơ bản của lớp RobotFileParser:
>>> nhập urllib.robotparser
>>> rp = urllib.robotparser.RobotFileParser()
>>> rp.set_url("http://www.pythontest.net/robots.txt")
>>> rp.read()
>>> rrate = rp.request_rate("*")
>>> rrate.requests
1
>>> rrate.seconds
1
>>> rp.crawl_delay("*")
6
>>> rp.can_fetch("*", "http://www.pythontest.net/")
đúng
>>> rp.can_fetch("*", "http://www.pythontest.net/no-robots-here/")
sai