#크롤링, 스크래핑, 파싱
- 스크래핑(Scraping): HTTP를 이용하여 웹 사이트의 데이터를 수집, 가공하는 행위
- 크롤링(Crawling): 스크래핑의 일종, 특정 웹 페이지에 대한 데이터를 추출해 내는 행위
- 파싱(parsing): 어떤 페이지에서 원하는 데이터를 가공하는 행위(토큰 분해, 트리생성)
연관 키워드: 스파이더(spider), 봇(bot), 지능 에이전트
#어떻게 크롤링을 하는가
- 사용하는 언어: (주로)Python
사용하는 Python 라이브러리: beautifulsoup, selenium
연관 키워드: webdriver(headless), httrck, wget-curl, WebZip
#무엇이 문제인가
형법상 크롤링에 대해 명시적으로 언급하지는 않으나, 사이트의 데이터를 수집하고 가공하는 행위에서 정보보안 문제와 저작권문제가 발생합니다.
- 보안문제: 정보통신망법 제 48조 제 1항 위반
다음의 내용을 위반할 수 있으므로, 크롤링 행위에 경각심을 가져야 합니다.
'정당한 접근권한이 없거나 허용된 접근권한을 넘어 정보통신망에 침하는 행위는 금함' - 저작권법 제 93조 제 1항 침해
저작권법에 데이터베이스 제작자의 구너리를 명시적으로 보호하고 있으며 데이터의 재산적 가치를 인정하고 있습니다. 따라서 크롤링을 통한 복제행위는 저작권법 위반의 가능성을 고려 해야합니다.
연관 키워드: 로봇배제표준, 'robots.txt'
#로봇배제표준, 'robots.txt'
- 로봇배제표준: 구글에서 로봇의 접근(크롤링)을 방지하기 위한 권고안. 접근 제한에 대한 설명을 robots.txt에 작성
서비스제공자가 'robots.txt'파일을 웹 사이트에 등록 시, 구글의 크롤러가 해당 내용에 따라 허용된 정보만을 크롤링하도록 합니다. 이는 서비스제공자-크롤러이용자 간의 데이터 수집에 대한 좋은 안내서가 되어줍니다. 그러나 'robot.txt'의 작성은 의무가 아니므로, robot 문서의 유무를 따짐으로써 데이터의 접근가능범위를 함부로 판단해서는 안 됩니다.
연관 키워드: HTML의 meta태그
#'robots.txt' 작성법
행위:대상 | 코드 |
문서 접근 허용: 모든 로봇 | User-agent: * Allow: / |
차단: 모든 로봇 | User-agent: * Disallow: / |
새 디렉토리 접근 차단: 모든 로봇 | User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /junk/ |
특정 파일 접근 차단: 모든 로봇 | User-agent: * Disallow: /directory/file.html |
모든 파일 접근 차단: BadBot | User-agent: BadBot Disallow: / |
특정 디렉토리 차단: BadBot, GoogleBot | User-agent: BadBot User-agent: Googlebot Disallow: /private/ |
응용 | User-agent: googlebot # googlebot 로봇만 적용 Disallow: /private/ # 이 디렉토리를 접근 차단한다. User-agent: googlebot-news # googlebot-news 로봇만 적용 Disallow: / # 모든 디렉토리를 접근 차단한다. User-agent: * # 모든 로봇 적용 Disallow: /something/ # 이 디렉토리를 접근 차단한다. |