DC Inside Scraper
Pricing
from $4.20 / 1,000 dc inside post collecteds
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
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
4
Monthly active users
12 days ago
Last modified
Categories
Share
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.
| Capability | This Actor | Deprecated Store alternative | Typical single-page scraper |
|---|---|---|---|
| Major galleries | Yes | No | Sometimes |
| Minor galleries | Yes | Yes | Sometimes |
| Mini galleries | Yes | No | Rarely |
| Search inside selected galleries | Yes | No | Rarely |
| Direct post and list URLs | Yes | Yes | Varies |
| Comment pagination and reply depth | Yes | Yes | Often incomplete |
| Nested and flat analysis outputs | Yes | Yes | Usually one format |
| Korea residential proxy default | Yes | Proxy support only | Varies |
| Page and run coverage audits | KVS records | Not documented | No |
| Default memory | 512 MB | 4096 MB | Varies |
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.
Recommended uses
- 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 URLsgalleryIds: Gallery IDs such asprogramming, combined withgalleryType
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:
| Field | Default | Purpose |
|---|---|---|
searchQueries | empty | Search title and body inside every Gallery target |
sort | latest | Use latest or recommended Gallery feed |
dateFrom, dateTo | empty | Keep posts inside a KST date window |
maxPosts | 20 | Global unique-post limit |
maxPagesPerTarget | 10 | Hard page limit for each Gallery feed or search |
scrapeComments | true | Fetch public comments and replies |
maxCommentsPerPost | 100 | Per-post comment limit; 0 requests all accessible pages |
outputFormat | nested | nested, flat, or postsOnly |
includeHtml | false | Preserve post body HTML in addition to plain text |
proxyConfiguration | Korean residential | Apify Proxy or custom proxy configuration |
maxConcurrency | 2 | Concurrent post workers |
requestDelayMs | 700 | Delay between requests from a worker |
Gallery search example
{"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 postcomment: emitted only inflatmode
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 pagesRUN_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 postcomment: 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 failureslimited_by_max_posts: collection stopped at the requested global post limitpartial: one or more target, post, or comment requests failedfailed: 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 installnpm testnpm run checkapify 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 MB | 4096 MB | 제품별로 다름 |
이 Actor를 만들 당시 기존 Store Actor인 rafazafar/gall-dcinside-scraper는 지원 중단 및 유지보수 상태로 표시되어 있었습니다. 해당 Actor는 마이너 갤러리를 대상으로 하며, 갤러리 내부 검색이나 명시적인 수집 범위 감사를 문서화하지 않습니다.
권장 사용 사례
- 지정한 디시인사이드 갤러리에서 한국 소비자 및 제품 VOC 수집
- 특정 커뮤니티의 최신 게시물 또는 추천 게시물 모니터링
- 텍스트 분석을 위한 공개 토론 맥락 전체 수집
- CSV 또는 BI 도구에서 분석하기 위한 게시물/댓글 평면형 출력
- 페이지별 실패 내역과 전체 수집량을 확인해야 하는 재현 가능한 리서치
적합하지 않은 사용 사례
- 디시인사이드 데이터만으로 한국 전체 여론을 대표한다고 추정하는 용도
- 비공개, 삭제됨, 로그인 필요 또는 성인 인증이 필요한 콘텐츠
- 게시물 작성, 추천, 로그인 또는 계정 전용 데이터 수집
- 광범위한 주제에서 관련 갤러리 전체를 자동 탐색하는 용도: 먼저 갤러리 ID 또는 URL을 제공해야 합니다
- 설정한 페이지, 날짜 및 결과 수 제한을 넘어서는 과거 데이터의 완전한 수집 보장
디시인사이드는 데이터센터 트래픽이나 한국 외 지역의 트래픽을 차단할 수 있습니다. 기본 프록시 설정은 고정 세션 방식의 한국 주거용 프록시를 사용합니다. 프록시 사용 가능 여부와 트래픽 비용은 Actor를 실행하는 Apify 계정에 따라 달라집니다.
입력
다음 중 하나 이상을 입력해야 합니다.
startUrls: 디시인사이드 갤러리 목록 또는 게시물 URLgalleryIds:programming과 같은 갤러리 ID와 해당galleryType
Console 입력 폼에는 Apify 자동 품질 테스트가 유효한 대상으로 5분 이내에 완료될 수 있도록 programming 갤러리에서 게시물 1건만 수집하는 제한된 예시가 미리 입력되어 있습니다. 이 prefill 값은 API 호출, Schedule 또는 기존 Saved Task에서 사용하는 런타임 기본값을 변경하지 않습니다.
주요 설정 항목:
| 필드 | 기본값 | 용도 |
|---|---|---|
searchQueries | 비어 있음 | 각 갤러리 대상에서 제목과 본문 검색 |
sort | latest | 최신 게시물 또는 추천 게시물 피드 선택 |
dateFrom, dateTo | 비어 있음 | 한국 표준시 기준 게시물 날짜 범위 설정 |
maxPosts | 20 | 전체 실행에서 저장할 고유 게시물의 최대 수 |
maxPagesPerTarget | 10 | 각 갤러리 피드 또는 검색 대상의 최대 페이지 수 |
scrapeComments | true | 공개 댓글과 답글 수집 |
maxCommentsPerPost | 100 | 게시물당 최대 댓글 수. 0은 접근 가능한 전체 댓글 요청 |
outputFormat | nested | nested, flat 또는 postsOnly 선택 |
includeHtml | false | 일반 텍스트와 함께 게시물 본문 HTML 보존 |
proxyConfiguration | 한국 주거용 프록시 | Apify Proxy 또는 사용자 지정 프록시 설정 |
maxConcurrency | 2 | 동시에 처리할 게시물 작업 수 |
requestDelayMs | 700 | 각 작업의 요청 간 지연 시간 |
갤러리 내부 검색 예시
{"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_AUDITS 및 RUN_AUDIT는 사용자 지정 과금 이벤트가 아닙니다.
수집 범위 상태 해석
complete_for_requested_pages: 요청한 모든 페이지가 기록된 실패 없이 완료됨limited_by_max_posts: 요청한 전체 게시물 수 제한에 도달하여 수집이 중단됨partial: 하나 이상의 대상, 게시물 또는 댓글 요청이 실패함failed: 게시물이 저장되지 않았고 실행 중 실패가 기록됨
HTTP 응답이 성공했다는 사실만으로는 충분하지 않습니다. 예상한 디시인사이드 상세 페이지 선택자가 존재하고 파싱에 성공한 경우에만 게시물이 저장됩니다.
책임 있는 수집
이 Actor는 공개 페이지의 콘텐츠만 수집합니다. 보수적인 제한값과 요청 간격을 사용하고, 관련 법률과 디시인사이드 이용약관을 준수하며, 개인정보의 재배포를 피하십시오. 화면에 공개된 닉네임, 사용자 ID 및 일부 IP 문자열도 관할 지역에 따라 개인정보로 간주될 수 있습니다.
로컬 개발
npm installnpm testnpm run checkapify run
이 프로젝트는 브라우저 대신 HTTP 요청과 Cheerio를 사용합니다. 댓글은 디시인사이드의 공개 JSON 엔드포인트에서 요청하며, 필요할 경우 모바일 엔드포인트로 대체 요청합니다.