DC Inside Scraper avatar

DC Inside Scraper

Pricing

from $4.20 / 1,000 dc inside post collecteds

Go to Apify Store
DC Inside Scraper

DC Inside Scraper

Collect public posts and comment threads from major, minor, and mini DC Inside galleries by feed, gallery search, or direct URL, with nested or flat results and separate coverage audits.

Pricing

from $4.20 / 1,000 dc inside post collecteds

Rating

0.0

(0)

Developer

Research Master

Research Master

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

4

Monthly active users

12 days ago

Last modified

Share

English | 한국어

Collect public posts and comment threads from Korean DC Inside galleries with auditable page and run coverage.

Why choose this Actor

This Actor is designed for research and VOC workflows that need more than a sample of recent post titles.

CapabilityThis ActorDeprecated Store alternativeTypical single-page scraper
Major galleriesYesNoSometimes
Minor galleriesYesYesSometimes
Mini galleriesYesNoRarely
Search inside selected galleriesYesNoRarely
Direct post and list URLsYesYesVaries
Comment pagination and reply depthYesYesOften incomplete
Nested and flat analysis outputsYesYesUsually one format
Korea residential proxy defaultYesProxy support onlyVaries
Page and run coverage auditsKVS recordsNot documentedNo
Default memory512 MB4096 MBVaries

The existing rafazafar/gall-dcinside-scraper Store Actor was marked deprecated and under maintenance when this Actor was created. It targets minor galleries and does not document gallery search or explicit coverage audits.

  • Korean consumer and product VOC from known DC Inside galleries
  • Monitoring recent or recommended posts in selected communities
  • Collecting full public discussion context for text analysis
  • Exporting flat post/comment rows to CSV or BI tools
  • Reproducible research that needs page-level failures and collection totals

Do not use it for

  • Estimating nationally representative public opinion from DC Inside alone
  • Private, deleted, login-only, or age-gated content
  • Writing posts, voting, logging in, or collecting account-only data
  • Discovering every relevant Gallery from a broad topic; provide the Gallery IDs or URLs first
  • Guaranteed historical completeness beyond the page, date, and result limits you set

DC Inside can block data-center or non-Korean traffic. The default proxy setting uses a sticky Korean residential session. Proxy availability and traffic charges depend on the Apify account running the Actor.

Input

Provide at least one of:

  • startUrls: DC Inside list or post URLs
  • galleryIds: Gallery IDs such as programming, combined with galleryType

The Console form is prefilled with a bounded one-post programming Gallery run so Apify's automated quality test has a valid target and can finish within its five-minute limit. These prefill values do not replace the runtime defaults used by API calls, Schedules, or existing Saved Tasks.

Useful controls:

FieldDefaultPurpose
searchQueriesemptySearch title and body inside every Gallery target
sortlatestUse latest or recommended Gallery feed
dateFrom, dateToemptyKeep posts inside a KST date window
maxPosts20Global unique-post limit
maxPagesPerTarget10Hard page limit for each Gallery feed or search
scrapeCommentstrueFetch public comments and replies
maxCommentsPerPost100Per-post comment limit; 0 requests all accessible pages
outputFormatnestednested, flat, or postsOnly
includeHtmlfalsePreserve post body HTML in addition to plain text
proxyConfigurationKorean residentialApify Proxy or custom proxy configuration
maxConcurrency2Concurrent post workers
requestDelayMs700Delay between requests from a worker
{
"galleryIds": ["programming"],
"galleryType": "major",
"searchQueries": ["AI"],
"sort": "latest",
"dateFrom": "2026-08-01",
"maxPosts": 20,
"maxPagesPerTarget": 3,
"scrapeComments": true,
"maxCommentsPerPost": 100,
"outputFormat": "nested"
}

Direct post example

{
"startUrls": [
{
"url": "https://gall.dcinside.com/board/view/?id=programming&no=1847628"
}
],
"maxPosts": 1,
"scrapeComments": true,
"maxCommentsPerPost": 20,
"outputFormat": "flat"
}

Dataset output

Every Dataset row has a stable record_type:

  • post: one successfully parsed public post
  • comment: emitted only in flat mode

Important post fields include:

{
"record_type": "post",
"source": "dcinside",
"gallery_id": "programming",
"gallery_type": "major",
"post_id": "1847628",
"url": "https://gall.dcinside.com/board/view/?id=programming&no=1847628",
"title": "Post title",
"body_text": "Post body",
"author_name": "Displayed nickname",
"author_id": null,
"author_ip": "Displayed IP fragment",
"created_at": "2026-08-24T14:30:25+09:00",
"view_count": 100,
"recommendation_count": 5,
"comment_count": 2,
"media_urls": [],
"comments": [],
"comments_collected": 2,
"comments_complete": true,
"matched_query": "AI",
"source_list_url": "https://gall.dcinside.com/board/lists/?id=programming&page=1",
"scraped_at": "2026-08-24T06:00:00.000Z"
}

In nested mode, comments contains comment IDs, parent IDs, reply depth, public author fields, text, timestamps, and media URLs. In flat mode, the post row has an empty comments array and each comment is a separate Dataset row.

Audit records

Audits are deliberately kept out of the default Dataset:

  • PAGE_AUDITS: sanitized request and parser status for list, post, and comment pages
  • RUN_AUDIT: input summary, target/page/post counts, comment coverage, failures, and completion status

This separation keeps Dataset exports analysis-ready and prevents audit rows from being confused with business results if result-based pricing is configured later.

Pay-per-event integration

The source code uses two custom event names:

  • post: one successfully saved post
  • comment: one successfully saved or nested public comment/reply

Post events are charged through the durable post Dataset write. Flat comment events are charged through their Dataset writes; nested comment events are charged only after the containing post has been saved. RUN_AUDIT.charging records attempted and charged counts for both events plus whether the run reached its spending limit.

When enabling pay-per-event pricing in Apify Console, configure both custom events and remove apify-default-dataset-item. Keeping the synthetic Dataset event would charge flat comment rows twice and make nested and flat output prices inconsistent. Page requests, retries, failures, PAGE_AUDITS, and RUN_AUDIT are never custom charge events.

Coverage interpretation

  • complete_for_requested_pages: all requested pages finished without recorded failures
  • limited_by_max_posts: collection stopped at the requested global post limit
  • partial: one or more target, post, or comment requests failed
  • failed: no posts were saved and the run recorded failures

A successful HTTP response is not enough: a post is saved only after the expected DC Inside detail selectors are present and parsed.

Responsible collection

Only public page content is collected. Use conservative limits and delays, follow applicable laws and DC Inside terms, and avoid redistributing personal data. Displayed nicknames, user IDs, and partial IP strings are public page fields but may still be personal data in your jurisdiction.

Local development

npm install
npm test
npm run check
apify run

The project uses HTTP requests and Cheerio rather than a browser. Comments are requested from DC Inside's public JSON endpoint, with a mobile endpoint fallback.


한국어 (Korean)

English | 한국어

한국 디시인사이드 갤러리의 공개 게시물과 댓글 스레드를 수집하고, 페이지 및 실행 단위의 수집 범위를 감사 가능한 형태로 제공합니다.

이 Actor를 선택하는 이유

이 Actor는 최근 게시물 제목 일부만 확인하는 수준을 넘어, 리서치 및 VOC 분석에 필요한 게시물 본문과 토론 맥락을 수집하도록 설계되었습니다.

기능이 Actor지원 중단된 Store 대안일반적인 단일 페이지 스크래퍼
메이저 갤러리지원미지원일부 지원
마이너 갤러리지원지원일부 지원
미니 갤러리지원미지원드물게 지원
지정 갤러리 내부 검색지원미지원드물게 지원
게시물 및 목록 URL 직접 입력지원지원제품별로 다름
댓글 페이지네이션 및 답글 깊이지원지원누락되는 경우가 많음
중첩형 및 평면형 분석 출력지원지원일반적으로 한 가지 형식만 지원
한국 주거용 프록시 기본값지원프록시 기능만 지원제품별로 다름
페이지 및 실행 범위 감사KVS 레코드 제공문서화되지 않음미지원
기본 메모리512 MB4096 MB제품별로 다름

이 Actor를 만들 당시 기존 Store Actor인 rafazafar/gall-dcinside-scraper는 지원 중단 및 유지보수 상태로 표시되어 있었습니다. 해당 Actor는 마이너 갤러리를 대상으로 하며, 갤러리 내부 검색이나 명시적인 수집 범위 감사를 문서화하지 않습니다.

권장 사용 사례

  • 지정한 디시인사이드 갤러리에서 한국 소비자 및 제품 VOC 수집
  • 특정 커뮤니티의 최신 게시물 또는 추천 게시물 모니터링
  • 텍스트 분석을 위한 공개 토론 맥락 전체 수집
  • CSV 또는 BI 도구에서 분석하기 위한 게시물/댓글 평면형 출력
  • 페이지별 실패 내역과 전체 수집량을 확인해야 하는 재현 가능한 리서치

적합하지 않은 사용 사례

  • 디시인사이드 데이터만으로 한국 전체 여론을 대표한다고 추정하는 용도
  • 비공개, 삭제됨, 로그인 필요 또는 성인 인증이 필요한 콘텐츠
  • 게시물 작성, 추천, 로그인 또는 계정 전용 데이터 수집
  • 광범위한 주제에서 관련 갤러리 전체를 자동 탐색하는 용도: 먼저 갤러리 ID 또는 URL을 제공해야 합니다
  • 설정한 페이지, 날짜 및 결과 수 제한을 넘어서는 과거 데이터의 완전한 수집 보장

디시인사이드는 데이터센터 트래픽이나 한국 외 지역의 트래픽을 차단할 수 있습니다. 기본 프록시 설정은 고정 세션 방식의 한국 주거용 프록시를 사용합니다. 프록시 사용 가능 여부와 트래픽 비용은 Actor를 실행하는 Apify 계정에 따라 달라집니다.

입력

다음 중 하나 이상을 입력해야 합니다.

  • startUrls: 디시인사이드 갤러리 목록 또는 게시물 URL
  • galleryIds: programming과 같은 갤러리 ID와 해당 galleryType

Console 입력 폼에는 Apify 자동 품질 테스트가 유효한 대상으로 5분 이내에 완료될 수 있도록 programming 갤러리에서 게시물 1건만 수집하는 제한된 예시가 미리 입력되어 있습니다. 이 prefill 값은 API 호출, Schedule 또는 기존 Saved Task에서 사용하는 런타임 기본값을 변경하지 않습니다.

주요 설정 항목:

필드기본값용도
searchQueries비어 있음각 갤러리 대상에서 제목과 본문 검색
sortlatest최신 게시물 또는 추천 게시물 피드 선택
dateFrom, dateTo비어 있음한국 표준시 기준 게시물 날짜 범위 설정
maxPosts20전체 실행에서 저장할 고유 게시물의 최대 수
maxPagesPerTarget10각 갤러리 피드 또는 검색 대상의 최대 페이지 수
scrapeCommentstrue공개 댓글과 답글 수집
maxCommentsPerPost100게시물당 최대 댓글 수. 0은 접근 가능한 전체 댓글 요청
outputFormatnestednested, flat 또는 postsOnly 선택
includeHtmlfalse일반 텍스트와 함께 게시물 본문 HTML 보존
proxyConfiguration한국 주거용 프록시Apify Proxy 또는 사용자 지정 프록시 설정
maxConcurrency2동시에 처리할 게시물 작업 수
requestDelayMs700각 작업의 요청 간 지연 시간

갤러리 내부 검색 예시

{
"galleryIds": ["programming"],
"galleryType": "major",
"searchQueries": ["AI"],
"sort": "latest",
"dateFrom": "2026-08-01",
"maxPosts": 20,
"maxPagesPerTarget": 3,
"scrapeComments": true,
"maxCommentsPerPost": 100,
"outputFormat": "nested"
}

게시물 URL 직접 입력 예시

{
"startUrls": [
{
"url": "https://gall.dcinside.com/board/view/?id=programming&no=1847628"
}
],
"maxPosts": 1,
"scrapeComments": true,
"maxCommentsPerPost": 20,
"outputFormat": "flat"
}

Dataset 출력

모든 Dataset 행에는 안정적인 record_type 값이 포함됩니다.

  • post: 파싱 후 성공적으로 저장된 공개 게시물 1건
  • comment: flat 모드에서만 별도 행으로 출력되는 댓글 1건

주요 게시물 필드 예시:

{
"record_type": "post",
"source": "dcinside",
"gallery_id": "programming",
"gallery_type": "major",
"post_id": "1847628",
"url": "https://gall.dcinside.com/board/view/?id=programming&no=1847628",
"title": "Post title",
"body_text": "Post body",
"author_name": "Displayed nickname",
"author_id": null,
"author_ip": "Displayed IP fragment",
"created_at": "2026-08-24T14:30:25+09:00",
"view_count": 100,
"recommendation_count": 5,
"comment_count": 2,
"media_urls": [],
"comments": [],
"comments_collected": 2,
"comments_complete": true,
"matched_query": "AI",
"source_list_url": "https://gall.dcinside.com/board/lists/?id=programming&page=1",
"scraped_at": "2026-08-24T06:00:00.000Z"
}

nested 모드에서는 comments에 댓글 ID, 상위 댓글 ID, 답글 깊이, 공개 작성자 정보, 텍스트, 작성 시각 및 미디어 URL이 포함됩니다. flat 모드에서는 게시물 행의 comments가 빈 배열이며, 수집된 각 댓글이 별도의 Dataset 행으로 저장됩니다.

감사 레코드

감사 데이터는 의도적으로 기본 Dataset과 분리하여 저장합니다.

  • PAGE_AUDITS: 목록, 게시물 및 댓글 요청별로 정리된 요청 및 파싱 상태
  • RUN_AUDIT: 입력 요약, 대상/페이지/게시물 수, 댓글 수집 범위, 실패 내역 및 완료 상태

이러한 분리는 Dataset 내보내기 결과를 분석하기 쉬운 형태로 유지하고, 결과 기반 과금에서 감사 행이 비즈니스 결과로 잘못 처리되는 것을 방지합니다.

이벤트별 과금 연동

소스 코드는 다음 두 가지 사용자 지정 이벤트 이름을 사용합니다.

  • post: 성공적으로 저장된 게시물 1건
  • comment: 성공적으로 저장되거나 게시물 안에 중첩된 공개 댓글 또는 답글 1건

post 이벤트는 게시물이 Dataset에 성공적으로 기록될 때 과금됩니다. flat 형식의 댓글은 각 Dataset 행이 저장될 때 과금되며, 중첩형 댓글은 해당 게시물이 저장된 이후에만 과금됩니다. RUN_AUDIT.charging에는 두 이벤트의 과금 시도 수와 실제 과금 수, 그리고 실행이 비용 한도에 도달했는지가 기록됩니다.

Apify Console에서 이벤트별 과금을 설정할 때는 두 사용자 지정 이벤트를 모두 등록하고 apify-default-dataset-item을 제거해야 합니다. 기본 Dataset 이벤트를 함께 유지하면 flat 형식의 댓글 행이 이중 과금되고, 중첩형과 평면형 출력의 가격이 서로 달라질 수 있습니다. 페이지 요청, 페이지네이션, 재시도, 실패, PAGE_AUDITSRUN_AUDIT는 사용자 지정 과금 이벤트가 아닙니다.

수집 범위 상태 해석

  • complete_for_requested_pages: 요청한 모든 페이지가 기록된 실패 없이 완료됨
  • limited_by_max_posts: 요청한 전체 게시물 수 제한에 도달하여 수집이 중단됨
  • partial: 하나 이상의 대상, 게시물 또는 댓글 요청이 실패함
  • failed: 게시물이 저장되지 않았고 실행 중 실패가 기록됨

HTTP 응답이 성공했다는 사실만으로는 충분하지 않습니다. 예상한 디시인사이드 상세 페이지 선택자가 존재하고 파싱에 성공한 경우에만 게시물이 저장됩니다.

책임 있는 수집

이 Actor는 공개 페이지의 콘텐츠만 수집합니다. 보수적인 제한값과 요청 간격을 사용하고, 관련 법률과 디시인사이드 이용약관을 준수하며, 개인정보의 재배포를 피하십시오. 화면에 공개된 닉네임, 사용자 ID 및 일부 IP 문자열도 관할 지역에 따라 개인정보로 간주될 수 있습니다.

로컬 개발

npm install
npm test
npm run check
apify run

이 프로젝트는 브라우저 대신 HTTP 요청과 Cheerio를 사용합니다. 댓글은 디시인사이드의 공개 JSON 엔드포인트에서 요청하며, 필요할 경우 모바일 엔드포인트로 대체 요청합니다.