크롤링이란 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술을 의미하며, 스크래핑(Scraping) 이라고도 한다.
쉽게 말하면 웹 페이지를 가져와서 그 안에서 데이터를 추출하는 기술이다.
자동 입력, 파일 다운로드 기능도 가능하고, driver을 이용하면 동적인 크롤링을 할 수 있게 된다. 여기서 동적이라는 의미는, 코드에 의해 사이트를 옮겨다니거나 스크롤이나 클릭을 하여 웹 코드에 변동이 있더라도 데이터를 추출할 수 있게 되는 것이다.
크롤링을 할 때 주의할 점이 있다.
웹사이트에서 크롤링봇 접근을 Disallow 하는 페이지는 크롤링을 해서는 안된다. 이는 처벌을 받을 수 있다.
그렇다면 접근을 허용하는지에 대한 여부는 어떻게 확인할까?
그것은 robots.txt 이다. 최상위 도메인주소 뒤에 /robots.txt를 입력하면 접근 허용 여부 컨텐츠를 확인할 수 있다.
예를 들어, 백준 온라인 저지(BOJ)의 robots.txt를 확인해보았다.
여기서 Disallow 라고 되어있는 하위 디렉토리 페이지들에서는 크롤링을 할 수 없다.
다행히도 크롤링 해보고싶었던 /problemset 은 비허용 목록에 없었다.
이런 식으로 크롤링 허용 여부를 잘 판단하여야 한다.
더 안전하게 2차적으로 meta태그를 확인해보는 것도 좋다.
이 크롤링 카테고리에서는 이 robots.txt를 고려하여, 웹 사이트에 큰 트래픽을 주지 않는 선에서 다양한 예제들을 크롤링 해볼 것이다.
다음 포스팅에서는 크롤링을 위한 세팅에 대해 다룰 것이다.
python 환경에서 selenium, beautifulsoup, chromedriver을 이용할 계획이다.
'Crawling' 카테고리의 다른 글
[크롤링, 예제 2] 레벨 분포 구하기 (0) | 2020.10.26 |
---|---|
[크롤링, 예제 1-3] Selenium - 새 창 안띄우고 크롤링 하기 (0) | 2020.10.23 |
[크롤링, 예제 1-2] 예제 1 - 셀레니움(Selenium) 이용 (0) | 2020.10.23 |
[크롤링, 예제 1] BOJ 정답율 추출하기 (11) | 2020.10.23 |
크롤링을 위한 준비과정 (Python, selenium, beautifulsoup 설치) (2) | 2020.10.22 |
댓글