이번 칼럼은 썰채널 소재를 위한 커뮤니티 글 요약해서 피씨에 저장하기입니다.
제대로 못가져 오시는 사이트가 있어서 계속 다듬고 있는데, 아 시간이 부족하네요.
수정하는대로 계속 올리겠습니다.
📌 간단 요약
- node 설치.
- 커뮤니티 사이트에서 댓글 많은 게시물 정보 가져오기.
- 로컬에서 볼 수 있는 html 파일 만들기.
0. 파일 구조
파일 구조는 아래와 같습니다.
community-scraper/
├── data/
│ ├── index.js # 데이터 파일 목록을 관리하는 레지스트리 파일
│ ├── 2026-07-25.js # 일별 수집 데이터
│ └── 2026-07-26.js # 일별 수집 데이터
├── fetch_communities.js # 수집기 메인
├── scraper.js # 스크래퍼 모듈 <- 가장 중요한 핵심 로직
└── index.html # 로컬 뷰어 UI (자동 로드 + 미니캘린더 + 태그 필터)
그러면 이제 데이터를 가져오는 작업 시작해볼게요 ^^
결과 화면은 아래와 같습니다.
1. Node.js 설치
노드 설치는 아래 칼럼에서 2. node js 설치를 참고하여 주세요.
이후 특정 폴더 생성, 노드에서 사용할 모듈을 설치합니다.
npm install express node-cron axios cheerio puppeteer
2. 커뮤니티 데이터 스크랩하기
async function scrapeDCInside() {
const list = [];
const res = await client.get('https://gall.dcinside.com/board/lists/?id=dcbest');
const $ = cheerio.load(res.data);
const items = $('tr.ub-content').slice(0, 10);
for (let i = 0; i < items.length; i++) {
const el = items[i];
const titleEl = $(el).find('td.gall_tit a').first();
const title = titleEl.text().replace(/\s+/g, ' ').trim();
const href = titleEl.attr('href');
const commentCnt = $(el).find('.reply_num').text().trim();
if (title && href && !href.includes('javascript')) {
const link = href.startsWith('http') ? href : 'https://gall.dcinside.com' + href;
const detail = await fetchPostDetail(link, '디시인사이드');
list.push({
site: '디시인사이드',
category: '실베',
title,
url: link,
author: detail.author,
date: detail.postDate,
commentCount: parseInt(commentCnt.replace(/[^0-9]/g, ''), 10) || 0,
content: detail.content,
comments: detail.comments,
fetchedAt: new Date().toISOString()
});
}
}
return list;
}
이런 방법으로 데이터를 가져옵니다.
스크랩을 막는 사이트가 많아서 다양한 방법으로 가져오고 있는데, 그래도 안되는 사이트가 있습니다.
계속 수정중입니다.
이렇게 가져온 데이터는 data 폴더 안에 날짜별로 저장합니다.
같은 날짜에 실행하면 같은 날짜 파일에 중복 데이터를 제거하고 추가합니다.
3. 로컬에서 볼 수 있는 html 파일 만들기
이렇게 저장한 데이터를 보기 좋게 html 파일로 보여줍니다.
아래 파일을 모두 다운받으세요.
4. 실행
이제 08.start.bat 을 실행합니다.
이렇게 댓글이 많은 데이터를 피씨에 수집할 수 있어요.
이제 08.index.html 파일을 보면 수집한 데이터를 확인할 수 있습니다.
과거 데이터도 볼 수 있어서 썰채널 작업할 때 소재 선정하기에 좋습니다~
커뮤니티 인기글 수집을 통해 영상 제작시 도움이 되었으면 좋겠습니다.
덥지만 건강한 하루 보내세요~ 🎉