본문 바로가기
nest.js

스크랩핑, 크롤링, 브라우저api(2024.05.12)

by goblin- 2024. 5. 14.

브라우저 주소창과 API 요청

  1. 브라우저 주소창은 API GET 요청 도구
    • 브라우저의 주소창에 URL을 입력하면 이는 GET 요청을 보내는 것과 동일합니다.
    • 포스트맨이나 curl과 같은 도구도 동일한 기능을 수행합니다.
  2. 브라우저는 HTML 응답을 해석
    • 브라우저는 서버로부터 응답을 받으면, 그 결과가 HTML일 경우 이를 해석하여 화면에 그림으로 나타냅니다.
    • JSON 응답의 경우 브라우저가 이를 해석하여 표시하지만, 주로 개발자 도구를 통해 내용을 확인합니다.

스크래핑과 크롤링

  1. 스크래핑 (Scraping)
    • 특정 시점에 한 번 데이터를 가져오는 작업.
    • 주로 cheerio 라이브러리를 사용하여 HTML을 파싱하고 필요한 데이터를 추출.
  2. 크롤링 (Crawling)
    • 주기적으로 데이터를 가져오는 작업.
    • puppeteer와 같은 라이브러리를 사용하여 웹 페이지를 자동으로 탐색하고 데이터를 수집.

HTML 가져오는 방법

  1. 개발자 도구 활용
    • 브라우저의 개발자 도구를 열고 네트워크 탭에서 요청과 응답을 확인.
    • 특정 요청의 응답으로 HTML을 확인할 수 있습니다.
  2. curl 명령어 사용
    • 맥북의 터미널에서 curl 명령어를 사용하여 특정 URL의 HTML을 가져올 수 있습니다.
    • 예시: curl http://www.naver.com

브라우저, 포스트맨, axios, curl의 공통점과 차이점

  1. 공통점
    • 모두 백엔드 서버에 API 요청을 보내는 도구입니다.
    • GET, POST 등의 HTTP 요청을 보낼 수 있습니다.
  2. 차이점
    • 브라우저: HTML 응답을 해석하여 그림으로 나타낼 수 있습니다.
    • 포스트맨(Postman): API 테스트 도구로, 다양한 형식의 HTTP 요청을 보낼 수 있으며, JSON 응답을 시각화할 수 있습니다.
    • axios: 자바스크립트 라이브러리로, 코드 내에서 HTTP 요청을 보내고 응답을 처리할 수 있습니다.
    • curl: 커맨드라인 도구로, HTTP 요청을 보내고 응답을 텍스트 형식으로 출력합니다.

HTTP 통신

  1. HTTP 통신의 본질
    • 텍스트(주로 JSON)와 하이퍼텍스트(HTML)를 주고받는 것입니다.
    • 브라우저는 HTML을 해석하여 사용자에게 시각적으로 표현합니다.

종합 정리

  1. 브라우저 주소창은 API GET 요청 도구:
    • 브라우저 주소창에 URL을 입력하면 서버에 GET 요청을 보냅니다.
  2. 브라우저는 HTML을 해석하고 시각화:
    • 서버의 응답이 HTML일 경우, 브라우저는 이를 해석하여 화면에 그림으로 나타냅니다.
  3. API 요청 도구의 공통 구조:
    • 브라우저, 포스트맨, axios, curl 모두 API 요청을 보내고 응답을 받는 구조는 동일합니다.
    • 단, 브라우저는 HTML 코드를 해석하여 그림으로 나타내는 기능이 추가로 있습니다.
  4. API와 응답 형식:
    • JSON 응답은 주로 백엔드에서 처리.
    • HTML 응답은 주로 프론트엔드에서 처리.