[javascript] Express.js에서의 웹 스크래핑 방법

소개

웹 스크래핑은 웹페이지에서 필요한 데이터를 추출하는 과정을 말합니다. 이 글에서는 Express.js 프레임워크를 사용하여 Node.js 기반의 웹 스크래퍼를 만드는 방법에 대해 알아보겠습니다.

패키지 설치

먼저 Express.js를 사용하기 위해 프로젝트 디렉토리에서 다음 명령을 사용하여 Express.js를 설치합니다.

npm install express

추가로 웹 스크래핑에 필요한 패키지인 axioscheerio도 설치해야합니다.

npm install axios cheerio

웹 스크래퍼 만들기

이제 Express.js 애플리케이션을 생성하고, 웹 스크래퍼를 만들어보겠습니다.

const express = require('express');
const axios = require('axios');
const cheerio = require('cheerio');

const app = express();

app.get('/scrape', async (req, res) => {
  try {
    const url = 'https://example.com'; // 스크랩할 웹페이지 URL
    const response = await axios.get(url);
    const $ = cheerio.load(response.data);

    // 추출할 데이터에 맞게 선택자를 수정하여 데이터 추출
    const title = $('h1').text();
    const description = $('p').text();

    res.json({ title, description });
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: 'An error occurred' });
  }
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});

위 코드에서 /scrape 경로로 GET 요청이 들어오면 해당 경로에 웹페이지를 스크랩하여 제목과 설명을 추출하고, JSON 형식으로 반환합니다.

실행 및 테스트

터미널에서 다음 명령을 실행하여 Express.js 애플리케이션을 실행합니다.

node app.js

웹브라우저나 API 테스트 도구를 사용하여 http://localhost:3000/scrape 경로로 GET 요청을 보내면 웹페이지의 제목과 설명이 반환되는 것을 확인할 수 있습니다.

결론

Express.js를 사용하여 웹 스크래퍼를 만들 수 있습니다. 이를 통해 웹페이지에서 필요한 데이터를 추출하여 활용할 수 있습니다.

참고 자료