웹 사이트 소유자는 /robots.txt 파일을 사용하여 웹 로봇에 사이트에 대한 지침을 제공합니다. 이것을 로봇 배제 프로토콜이라고 합니다. 이 파일은 웹 리소스에 자동으로 액세스하는 컴퓨터 프로그램에 대한 간단한 텍스트 기반 액세스 제어 시스템입니다. 이러한 프로그램을 스파이더, 크롤러 등이라고 합니다. 파일은 에이전트가 액세스할 수 없는 URL 목록이 뒤에 오는 사용자 에이전트 식별자를 지정합니다.
예를 들어
#robots.txt Sitemap: https://example.com/sitemap.xml User-agent: * Disallow: /admin/ Disallow: /downloads/ Disallow: /media/ Disallow: /static/
이 파일은 일반적으로 웹 서버의 최상위 디렉토리에 있습니다.
Python의 urllib.robotparser 모듈은 RobotFileParser 클래스를 제공합니다. 특정 사용자 에이전트가 robots.txt 파일을 게시한 웹 사이트의 URL을 가져올 수 있는지 여부에 대한 질문에 답합니다.
다음 메소드는 RobotFileParser 클래스에 정의되어 있습니다.
set_url(url)
이 메소드는 robots.txt 파일을 참조하는 URL을 설정합니다.
읽기()
이 메소드는 robots.txt URL을 읽고 이를 파서에 제공합니다.
파싱()
이 메서드는 lines 인수를 구문 분석합니다.
can_fetch()
이 메소드는 사용자 에이전트가 robots.txt에 포함된 규칙에 따라 URL을 가져올 수 있는 경우 True를 반환합니다.
mtime()
이 메소드는 robots.txt 파일을 마지막으로 가져온 시간을 반환합니다.
수정됨()
이 메소드는 robots.txt를 마지막으로 가져온 시간을 설정합니다.
crawl_delay()
이 메소드는 문제의 사용자 에이전트에 대한 크롤링 지연 매개변수 robots.txt의 값을 반환합니다.
요청 속도()
이 메서드는 Request-rate 매개변수의 내용을 명명된 튜플 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()