
크롤링(crawling)은 '기다'라는 뜻의 crawl의 명사형인데, 소프트웨어와 같은 무언가가 인터넷을 돌아다니며 정보를 수집해 오는 작업을 의미하고, 그러한 작업을 하는 소프트웨어를 크롤러라고 한다. 월드와이드웹에서 웹페이지의 데이터를 '긁어' 오는 행위를 스크래이핑이라고도 하는데 대체로 유사한 의미이다.
- 강태욱 변호사, 「크롤링」, 법률신문
이처럼 크롤링과 스크래핑이라는 용어는 비슷한 의미로 사용되고 구분도 모호하지만 굳이 나눠보자면 다음과 같이 나눠볼 수 있다.
크롤링
Seed URL 목록에서 시작해서 반복적으로 웹 링크를 찾고 가져오는 프로세스이다. 엄밀히 말하면 크롤링을 하려면 스크래핑(URL 추출)도 해야 한다.
ex) 구글, 네이버 같은 검색 엔진들이 URL을 수집하고 인덱싱 하는 경우
스크래핑
웹 문서를 처리하고 그로부터 정보를 추출하는 프로세스이다. 스크래핑은 크롤링을 하지 않고도 할 수 있다.
ex) 기상청 웹사이트의 페이지를 프로그램적으로 분석해 날씨 데이터만 로드해 다른 사이트나 프로그램에서 사용하는 경우
셀레니움 퍼펫티어 속도 상대적으로 느림 상대적으로 빠름 언어 Java, Python, C#, Ruby, JS, Kotlin JavaScript 브라우저 크롬, 엣지, 파이어폭스, IE, 사파리 크롬만 사용 가능
- 셀레니움과 간단하게 비교해보았다.
- 추가로 퍼펫티어는 실제로 크롬이기 때문에 차단하기 더 어렵다고 한다.
robots.txt 파일은 로봇 배제 표준에 따라 웹사이트를 방문하는 크롤러나 스크래퍼 등 자동화 소프트웨어에게 사이트의 어떤 부분을 방문하는 것이 허락되어 있는지 알려주는 방법이다.
robots.txt 파일은 사이트의 루트에 위치한다.
예를 들면 사이트의 주소가 example.com이라면 robots.txt 파일은 example.com/robots.txt에 있다.
naver.com/robots.txt를 브라우저에 입력하면 아래와 같이 네이버의 robots.txt 파일을 볼 수 있다.
User-agent: * # 이 규칙이 모든 User-agent에 적용됨
Disallow: / # 모든 경로에 대한 접근을 허용하지 않음
Allow : /$ # 첫 페이지에 대한 접근은 허용함
로봇 배제 표준은 권고안이므로 강제성은 없으나 이를 무시하고 크롤링을 하는 것은 권장되지 않는다.