본문 바로가기

Programming/Python Program

[PYTHON] Python을 이용한 웹사이트 스캐너 만들기 - 5. robots.txt

이번 시간에는 robots.txt 에 대해 알아보려고 합니다. robots.txt 파일이 어떤 역할을 하냐면, 웹을 만들때 구글이나, 야후, 네이버, 다음과 같은 검색엔진에서 크롤링(사이트를 프로그램으로 자동 저장하는것)을 하는데 이때 민감한 페이지나 관리자 페이지 같은것은 크롤링 하지 못하게 텍스트 파일 형태로 작성해 둔 것입니다. 보다 자세한 사항은 Robots.txt 링크를 참조하시면 이해하실 수 있을것 입니다.


자 그럼 시작해 보겠습니다.

1. 우선 robots_txt.py 파일을 만들어 주고 import urllib.request 를 작성해 줍니다. urllib 와 request 는 웹과 관련된 파이썬 모듈입니다.

2. io 또한 임포트 해줍니다.

3. get_robots_txt 함수를 정의하고 인자는 url 을 받게 합니다.

4. 만약 url 이 '/' 로 끝난다면 if 문 아래의 것을 실행하게 합니다.

5. if 문이 True 이면 path 에는 url 값을 그대로 넣어주고,

6. if 문이 False 이면, path 에 url 값에 '/'를 붙여서 넣어줍니다. 

7. 인터넷에서 리퀘스트 파일을 만들것입니다. 어느 사이트이든지 가령, 구글/robots.txt 이던지, 야후/robots.txt 이던지 웹을 열어서 그 값을 req(request를 이렇게 임의로 지정함)에 넣어줍니다.

8. 스탠더드 인코딩인 'utf-8'을 지정해주고 TextIOWrapper을 이용해서 읽어 data에 그 값을 할당해 줍니다.

9. 그리고 그 결과인 data를 읽게 하여 리턴해 줍니다.


지금까지 만든게 잘 돌아가는지 확인해 봐야겠죠? 마찬가지로 프린트문을 이용해서 구글의 robots.txt 를 얻어오게 해 보겠습니다.





구글이라 그런지 상당히 긴~ 결과값이 나오는군요.


자 이번 시간은 여기까지 입니다.


역시나 다음장에 계속 하겠습니다. To be continued....