Development/파이썬 [Python]

[Python] 웹 크롤링(Crawling) 주의사항

요체크다 2021. 1. 21. 01:32
반응형

  인터넷에서 웹 크롤링이라고 검색을 하면 파이썬을 통해 쉽고 간편하게 웹 정보를 수집할 수 있는 내용들이 상당히 많이 공유되고 있습니다.

 좀더 편하고 쉽게 웹에 있는 정보들을 수집하고 재활용할 수 있어 충분히 좋은 기능이긴 하지만, 해당 기능을 사용하기 전에 기본적인 주의사항에 대해서 숙지를 하고 사용하는 것이 좋을거 같아 이렇게 글을 남깁니다.

 

"모든 정보를 크롤링 할 수 없다!"

 현재 인터넷상에는 정말 다양한 사이트들과 다양한 정보들이 존재하는데, 모든 정보에 대해 크롤링이 허용되는 것이 아닙니다. 개인정보가 있는 사이트의 경우 당연히 수집 못하도록 막을 것이고, 가져가지 말아야할 정보를 가져 가는 경우에는 저작권에 걸려 법적 문제까지 가는 경우가 발생할 수 도 있습니다.

 

 그럼 이런경우 어떻게 구분하여 수집해도 문제없는 정보인지, 수집하면 안되는 정보인지 확인하는 방법은 해당 사이트에 존재하는 "robots.txt" 이라는 파일을 참조하는 것입니다.

 

 robots.txt 파일은 무분별한 크롤링을 막고 제어하기 위해 1994년 6월에 로봇 배제 규약이 만들어졌습니다. 말 그대로 로봇이 수집을 못하게 막을 목적으로 만들어졌는데 로봇의 접근 관련 내용(크롤링 허가/불허의 여부)을 robot.txt 라는 파일에 적어두는 방법입니다. 결국 robots.txt 파일은 해당 사이트의 안내문과 같은 역할을 하며 반드시 해당 사이트에 있는 정보를 수집하기 전에 읽어 보아야 합니다.

 

 robots.txt 파일의 위치는 참조하고자 하는 웹사이트의 주소 뒤에 슬래시 후 바로 robot.txt 를 넣어서 접근하면 확인할 수 있습니다.

 - ex) http://namu.wiki/robots.txt 

 

그리고 robots.txt 파일의 형식은 아래와 같습니다.

[ robots.txt 파일 형식 ]

User-agent: <= 검색봇 이름

Disallow: <= 접근 설정

Crawl-delay: 다음방문까지의 디레이(초)

 

[ 모든 검색봇에 차단 ]

User-agent: *

Disallow: /

 

[ 모든 검색봇에 허용 ]

User-agent: *

Disallow:

 

[ 모든 검색봇에 대해 일부만 허용 ]

User-agent: *

Disallow: /page1/

Disallow: /page2/

 

 

반응형