Snoopy [Python] 7. 웹스크래핑(1) - 기본개념, 주의사항
Python/개념정리

[Python] 7. 웹스크래핑(1) - 기본개념, 주의사항

Sooyoon Jeong 2022. 10. 30.

1. 웹스크래핑과 웹크롤링

정보를 수집하기 위한 목적을 가진 두 방법론

 

1) 웹 크롤링(web crawling)

  - 자동화 봇(웹 크롤러)이 웹을 돌아다니면서 정보를 수집하는 것이다.

  - 크롤러란 조직적, 자동화된 방법으로 월드와이드 웹을 탐색하는 컴퓨터 프로그램이다.

  - 크롤링은 크롤러가 하는 작업을 부르는 말로, 여러 인터넷 사이트의 페이지(문서, html 등)를 수집해서 분류하는 것이다.

  - 대체로 찾아낸 데이터를 저장한 후 쉽게 찾을 수 있게 인덱싱하며, 인터넷 상의 사이트를 인덱싱하는 목적을 가지고 있다.

 

2) 웹 스크래핑(web scraping)

  - 원하는 특정한 정보를 웹에서 추출하는 것이다.

  - HTTP를 통해 웹 사이트의 내용을 긁어다 원하는 형태로 가공하는 것으로 크롤링도 스크래핑에 포함된다고 보는 견해도 있다.

 

3) 두 가지의 차이점

  - 스크래퍼 봇은 웹 크롤러 봇과 다르게 동작한다.

  - 크롤러는 자신의 목적을 표시하며, 웹사이트가 자신을 다른 것으로 생각하도록 속이려 하지 않는데 비해, 스크래퍼 봇은 웹 브라우저인 것처럼 가장한다.

  - 스크래퍼 봇은 양식 작성 같은 고급 작업을 하거나 웹사이트의 특정 부분에 도달하기 위한 행동을 수행하는 경우가 있다. 크롤러는 그렇게 하지 않는다.

  - 스크래퍼는, 웹 크롤러에게 어떤 데이터를 분석하고 사이트의 어떤 영역은 피하라고 말하기 위해 특별히 설계된 정보가 담긴 텍스트 파일인 robots.txt 파일을 무시하는 것이 일반적이다.

  - 스크래퍼는 특정 콘텐츠를 가져오도록 설계되었으므로, 무시하도록 명시된 콘텐츠를 가져오도록 설계되는 경우가 있다.

  - 웹 크롤링은 여러 웹페이지를 기계적으로 탐색하는 것이고 웹 스크래핑은 특정한 하나의 웹 페이지를 탐색하고 원하는 데이터를 추출하는 것이다.

 

2. 주의사항

웹스크래핑은 자칫 분쟁의 소재가 될 수 있다. 아래의 사항을 잘 확인하고 실습을 진행하자.

1) 저작권에 문제가 없는가?

2) 네트워크에 무리하게 요청을 하지는 않았는가? (서버 다운 이슈, time.sleep 사용 권고)

3) 로봇 배제 표준(robots.txt) 확인 및 준수 권장

  ※ 로봇 배제 표준 확인법: ##(사이트 url) /robot.txt 입력 → txt파일이 다운로드 된다.

    - User-agent: *

    - Disallow: /

    - Allow: /$

댓글