웹 크롤링

Jun·2022년 5월 11일
0

네이버 부스트캠프

목록 보기
2/21

웹 크롤링


node에서 웹 크롤링을 구현하기 위한 다양한 라이브러리를 사용할 수 있다.

그 중 axios와 cheerio를 알아보자.

2.1 axios


  • axios란 브라우저, node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다.
  • 즉, url을 통해 서버에 요청하여 html문서를 받아오는 작업을 수행한다.
  • 받아온 html문서는 chreeio를 이용하여 파싱할 수 있다.

2.2 cheerio


  • chreeio란 html문서를 조작할 수 있게 도와주는 라이브러리다.
  • 마치 jquery를 사용하여 조작하는 것 처럼 파싱을 쉽게 만들어 준다.
  • 만약 검색 엔진에서 검색 리스트를 크롤링하고 싶다면, 검색 리스트의 html 패턴을 분석하여 파싱하면 된다.

2.3 비동기


  • 앞서 말했듯이 axios는 비동기 통신 라이브러리이며, Promise를 사용하기 때문에 async, await 구문을 이용하여 통신을 진행해야 한다.
  • 비동기 통신의 간단한 예를 들어보자

function hello() {
  return 'Hello';
}
hello();

위의 코드는 문자열을 리턴하는 간단한 함수이다. 그런데 함수 앞에 async키워드를 추가한다면??
async function hello() {
  return 'Hello';
}
hello();

이제 hello()는 Hello가 아닌 Promise를 반환한다.


Promise란?

'미래'시점을 위한 데이터, 즉 '이건 비동기 함수 이기 때문에 리턴 값이 바로 나오지 않아'라는 의미로 해석할 수 있다.

즉 위의 코드를 정상적으로 동작시키기 위해선


async function hello() {
  return 'Hello';
}
await hello();

await을 붙여줘야 한다. 즉, 'Promise를 리턴하는 거면 기다릴거야.. 라는 의미이다.'
아직까지 비동기 방식을 완전히 이해하고 있지는 않기 때문에 추후에 더 공부해봐야한다!!

profile
HiHi

0개의 댓글