Scraping & Crawling?

Parker.Park·2022년 4월 6일
0

코드캠프

목록 보기
12/34

Scraping?

IT 용어에서 스크래핑은 주로 데이터 스크래핑을 의미한다고 한다. 데이터 스크래핑은 컴퓨터 프로그램이 다른 프로그램으로 부터 들어오는 인간이 읽은 수 있는 출력으로 부터 데이터를 추출하는 기법이라고 한다.

일반적으로 프로그램들 간의 데이터 전송은 사람이 아닌 컴퓨터에 의한 자동화된 처리에 적합한 자료 구조를 사용하여 수행된다고 한다. 그렇기 때문에 구문분석이 가능하고, 보통 구조화 되어 있기 때문에 반대로 자동으로 데이터를 불러 올 수 있도록 한 것이 데이터 스크래핑 기술이라고 생각한다.

보통 웹 스크래핑 이기 때문에 웹 스크래핑 기준으로 작성하겠다.

웹 스크래핑 모듈 cheerio

Node.js에서 웹스크래핑 모듈 중 대표적인 것으로는 cheerio 가 있다. (사실 이 모듈만 알고 있다.) cheerio 모듈은 받아온 페이지를 파싱(?) 하여 전체 페이지 중에서 필요한 부분 정보만을 가져오게 할 수 있다고 한다.

파싱?

파싱(parsing)은 구문 분석이라고 한다. 문장이 이루고 있는 구성 성분을 분해하고 분해된 성분의 위계 관계를 분석하여 구조를 결정하는 것이다. 즉 데이터를 분해 분석하여 원하는 형태로 조립하고 다시 빼내는 프로그램을 말한다. 웹상에서 주어진 정보를 내가 원하는 형태로 가공하여 서버에서 불러들이는 것이라고 한다..

cheerio 는 jQuery 문법을 그대로 사용 할 수 있다.

그렇기 때문에 어렵지 않게 모듈을 사용 할 수 있다고한다.(모르면 jQuery를 공부 하여야 한다.) cheerio 모듈을 사용 하기 이전에 웹에서 데이터를 가져온 모듈이 하나더 필요한다.
아래 참고에서는 request 모듈을 사용 하였는데, 강의 시간에는 axios 를 사용 하였다.

Crawling

보통 웹 크롤링(web crawling)을 의미하면, 대게 web Crawler 프로그램을 많이 얘기한다.
웹 크롤러는 자동화된 방법으로 웹을 탐색하는 프로그램을 의미한다. 웹 크롤러가 하는 작업을 웹크롤링 혹은 스파이더링(spidering)이라고 부른다고 한다.

puppeteer 모듈

Web Crawling 의 대표적인 모듈 중 puppeteer을 소개 하겠다.
구글 크롬 개발팀에서 직접 개발 했다고 하며, Chromium 일 제공하는 API라고 한다. 보통 Puppeteer로 가져온 데이터들은 cheerio로 파싱한다. 특징으로는 Headless Browser로 작동된다고 한다. 그 외 특징을들 아래 링크를 참고 하도록 하자.
할수 있는 일로는 해당 페이지를 스크린샷 할 수 있으며, 페이지들의 데이터를 크롤링 할 수 있다. UI testing, 키보드 인풋, 폼 제출 등을 자동화 할 수 있다고 한다. 그러면서 사이트의 성능을 진단할 수 있다고 한다.


실제로는 강의에서 한 번만 사용해서 정확하게 글 쓰기가 어려웠다. 심지어 참조 사이트를 글을 읽고 옮기는 것도 어려웠다. ㅠㅠ

참조

[What is data scraping?, cloudeflare, 2022년04월08일 접속]
https://www.cloudflare.com/ko-kr/learning/bots/what-is-data-scraping/
[데이터 스크레이핑, 위키백과, 2022년04월08일 접속]
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%8A%A4%ED%81%AC%EB%A0%88%EC%9D%B4%ED%95%91
[웹 스크래핑-Cheerio 모듈, tistory, 2022년04월08일 접속]
https://dalkomit.tistory.com/104
[파싱, 해시넷, 2022년04월09일 접속]
http://wiki.hash.kr/index.php/%ED%8C%8C%EC%8B%B1
[[Node.js] Crawling을 위한 Puppeteer 알아보기,[Log.bluayer], 2022년04월09일 접속]
https://bluayer.com/35

profile
개발자준비중

0개의 댓글