# Proooxy — AI 에이전트와 LLM을 위한 RAG-레디 웹 데이터 — 전체 콘텐츠 (llms-full.txt) > AI 에이전트, 리트리벌 파이프라인, LLM을 위한 구조화된 RAG-레디 웹 데이터. Richard Feng은 이커머스, SEC/EDGAR 공시, 연방 지출, 판례, 임상시험, 소셜·영상 데이터를 아우르는 프로덕션급 Apify 액터를 만듭니다 — 안티봇 우회, 스키마가 일관된 클린 JSON, 공개 데이터는 API 키 불필요. 이 파일은 https://proooxy.com/ko/의 모든 공개 페이지를 하나의 문서로 이어붙인 것으로, LLM과 AI 에이전트가 직접 수집하도록 만들어졌습니다. 각 페이지 앞에는 구조화된 프런트매터(URL, 유형, 카테고리, 기술, 지역, 날짜)로 구성된 팩트 블록이 있으며, 그 뒤에 전체 Markdown 본문이 이어집니다. 실제 운영 중인 사이트에서 자동으로 생성됩니다. --- ## 사이트 메타데이터 - **사이트:** Proooxy — AI 에이전트와 LLM을 위한 RAG-레디 웹 데이터 - **URL:** https://proooxy.com/ko/ - **설명:** AI 에이전트, 리트리벌 파이프라인, LLM을 위한 구조화된 RAG-레디 웹 데이터. Richard Feng은 이커머스, SEC/EDGAR 공시, 연방 지출, 판례, 임상시험, 소셜·영상 데이터를 아우르는 프로덕션급 Apify 액터를 만듭니다 — 안티봇 우회, 스키마가 일관된 클린 JSON, 공개 데이터는 API 키 불필요. - **작성자:** Richard Feng - **GitHub:** https://github.com/autofacts - **Apify Store:** https://apify.com/autofacts - **도구:** 프로덕션 액터 17개 - **게시물:** 2 - **마지막 생성일:** 2026-08-04 --- ## 도구 카탈로그 색인 - [Macy's Scraper — 상품, 가격, SKU 및 뉴스](https://proooxy.com/ko/tools/macys-scraper/) — Macy's 상품, 가격, SKU/UPC 및 뉴스 — 브라우저 없이 Akamai 방어를 뚫습니다. - [Bluesky Scraper — 게시물, 프로필, 피드 및 인터랙션](https://proooxy.com/ko/tools/bluesky-scraper/) — Bluesky의 게시물, 프로필, 피드, 인터랙션을 크롤링합니다. - [ClinicalTrials.gov Scraper — 임상시험, 참가 조건 및 결과](https://proooxy.com/ko/tools/clinical-trials-scraper/) — ClinicalTrials.gov의 임상시험, 참가 조건, 결과를 검색합니다. - [CourtListener Scraper — 판례, 도켓 및 전문](https://proooxy.com/ko/tools/courtlistener-scraper/) — 리걸 AI를 위한 미국 판례, 도켓, 판례 전문. - [SEC EDGAR Scraper — 공시, 전문 검색 및 XBRL 재무 데이터](https://proooxy.com/ko/tools/sec-edgar-scraper/) — SEC 공시, 10-K/10-Q 텍스트, XBRL 재무 데이터 — RAG-레디. - [USAspending.gov Scraper — 연방 지출, 수혜자 및 집계 데이터](https://proooxy.com/ko/tools/usaspending-scraper/) — USAspending.gov의 연방 지출, 수혜자, 지출 집계 데이터. - [YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM](https://proooxy.com/ko/tools/youtube-transcript-scraper/) — YouTube 스크립트를 JSON, SRT, VTT, 또는 LLM-레디 텍스트로 제공합니다. - [Sephora Scraper(글로벌)](https://proooxy.com/ko/tools/sephora-scraper/) — 모든 Sephora 스토어를 크롤링 — 21개 마켓, 하나의 액터. - [Boohoo Scraper — 7개 지역의 상품 데이터](https://proooxy.com/ko/tools/boohoo-scraper/) — Boohoo의 7개 지역 스토어 상품 데이터를 크롤링합니다. - [Farfetch Scraper — 럭셔리 패션 상품 데이터](https://proooxy.com/ko/tools/farfetch-scraper/) — 다중 통화를 지원하는 Farfetch의 럭셔리 패션 상품을 크롤링합니다. - [Global API Load Tester — 10K+ RPS 스트레스 테스트](https://proooxy.com/ko/tools/load-tester/) — 지역 분산 부하 테스트로 10K+ RPS를 시뮬레이션합니다. - [Lululemon Scraper — 상품, 상품 변형 및 가격](https://proooxy.com/ko/tools/lululemon-scraper/) — Lululemon의 상품 변형과 미디어를 포함한 상품 데이터를 추출합니다. - [Schema Markup Scraper & SEO 감사 도구](https://proooxy.com/ko/tools/schema-markup-scraper/) — 모든 웹사이트의 구조화된 데이터를 추출하고 SEO를 감사합니다. - [Sephora EU Scraper — 유럽 9개국 마켓](https://proooxy.com/ko/tools/sephora-eu-scraper/) — Sephora의 유럽 9개국 마켓 상품 데이터를 추출합니다. - [Shopify Scraper — 모든 스토어의 상품 데이터](https://proooxy.com/ko/tools/shopify-scraper/) — 모든 Shopify 스토어의 상품 데이터를 추출합니다. - [Ulta Beauty Scraper — 상품, 가격 및 SKU](https://proooxy.com/ko/tools/ulta-scraper/) — Ulta Beauty의 전체 상품 데이터를 크롤링합니다. - [Universal Web Printer — URL·HTML을 PDF, 이미지로 변환](https://proooxy.com/ko/tools/web-printer/) — URL과 HTML을 PDF, PNG, JPEG, WebP로 변환합니다. --- # Macy's Scraper — 상품, 가격, SKU 및 뉴스 - **URL:** https://proooxy.com/ko/tools/macys-scraper/ - **유형:** tools - **설명:** Macy's 상품 데이터 — 가격, 상품 변형, SKU/UPC 바코드, 이미지, 평점 및 리뷰 — 를 검색, 카테고리, 트렌딩, 상품 URL에서 추출하고, Macy's Inc. 뉴스까지 함께 수집합니다. 브라우저 없이도 Akamai 방어를 뚫습니다. - **요약:** Macy's 상품, 가격, SKU/UPC 및 뉴스 — 브라우저 없이 Akamai 방어를 뚫습니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Crawlee, Cheerio - **마켓/지역:** 미국 - **Apify 등록 페이지:** https://apify.com/autofacts/macy-s-scraper - **키워드:** macys 크롤링, macy's 상품 데이터, macys 가격 모니터링, 백화점 스크래퍼, macys sku upc 데이터, macys 리뷰 크롤링, 리테일 상품 데이터 - **게시일:** 2026-07-15 - **수정일:** 2026-07-15 **주요 기능:** - 하나의 액터에 4가지 소스 — 상품 검색, 카테고리, 트렌딩, Macy's Inc. 뉴스 - Macy's 자체의 모바일 및 웹사이트 JSON API를 활용해 브라우저 없이 Akamai Bot Manager를 우회 - 구매 가능한 모든 상품 변형에 대해 색상, 사이즈, 재고, 가격과 함께 SKU별 UPC 바코드 제공 - 정수 센트 단위 가격과 로케일 포맷 문자열을 함께 제공 — 부동소수점 반올림 오류 없음 - 완전한 리뷰 인텔리전스 — 별점 히스토그램, 추천 수, 핏/사이즈 보조 평점 - 변형마다 별도 행이 아니라 모든 색상과 사이즈를 하나의 상품 레코드로 그룹화 - 클린한 캐노니컬 URL만 제공 — 내부 API 엔드포인트와 클라이언트 키는 출력에 절대 노출되지 않음 - 검색, 카테고리, 트렌딩, 상품 상세 결과 전반에 걸친 단일 정규화 스키마 **활용 사례:** - SKU 단위의 백화점 가격 및 프로모션 모니터링 - 경쟁사 분석 — Macy's 대 Nordstrom, Ulta, 또는 브랜드 DTC 가격 비교 - 변형별 UPC 바코드를 통한 리테일러 간 카탈로그 매칭 - Macy's에 입점한 브랜드를 위한 리뷰 및 평점 인텔리전스 - 리테일 뉴스 모니터링 — Macy's Inc.의 보도자료 및 실적 발표 **입력 파라미터:** - `scrapeType` (string, 필수) — 크롤링할 소스: search, category, trending, news, all 중 선택(기본값: search). - `query` (string, 선택) — 상품 검색 키워드, 예: women shoes. - `startUrls` (array, 선택) — Macy's 상품/카테고리 URL 또는 Macy's Inc. 뉴스 URL. - `categoryIds` (array, 선택) — Macy's 카테고리 ID(예: 5449). 알고 있다면 카테고리 URL 사용을 권장. - `trendingUrls` (array, 선택) — 트렌딩, 베스트셀러, 또는 큐레이션된 리스팅 URL. - `newsUrls` (array, 선택) — Macy's Inc. 뉴스 목록 또는 기사 URL. - `includeProductDetails` (boolean, 선택) — 리스팅 항목에 전체 상품 상세(변형, SKU, 갤러리) 정보를 보강(기본값: true). - `maxPages` (number, 선택) — 리스팅/뉴스 소스별 최대 페이지네이션 깊이. - `maxResults` (number, 선택) — 출력 레코드 상한. 0 = 상한 없음. - `proxy` (object, 필수) — Apify Proxy 또는 커스텀 프록시 URL. 레지덴셜, 국가는 미국을 권장. **자주 묻는 질문:** **Q: 브라우저 없이 어떻게 Akamai를 통과하나요?** JS 챌린지와 아예 싸우지 않습니다. 리스팅은 Macy's 모바일 앱 API에서, 상품 상세는 웹사이트의 JSON API에서 가져오는데, 둘 다 익명 읽기 요청에 응답하는 별도의 인프라에서 동작합니다. 로그인도, 쿠키도, API 키도 필요 없습니다. **Q: 가격은 달러 단위인가요, 센트 단위인가요?** 부동소수점 반올림 오류를 피하기 위해 정수 센트 단위(5999 = $59.99)로 제공하며, 로케일 포맷 문자열($59.99)도 함께 제공합니다. **Q: 상품 변형과 UPC는 어떻게 처리되나요?** 모든 색상과 사이즈는 variants[] 배열을 가진 하나의 상품 레코드로 그룹화됩니다. 각 변형은 고유한 UPC 바코드, 색상, 사이즈, 재고, 가격을 담고 있으며, 이는 스와치 위젯을 긁어낸 것이 아니라 Macy's의 SKU 관계 데이터에서 복원한 것입니다. **Q: 한 번의 실행으로 상품과 뉴스를 모두 크롤링할 수 있나요?** 네. scrapeType을 all로 설정하고 query, startUrls, categoryIds, trendingUrls, newsUrls를 원하는 대로 조합해 제공하면 됩니다. ## 출력 예시 ```json { "type": "product", "source": { "id": "12345678", "canonicalUrl": "https://www.macys.com/shop/product/calvin-klein-womens-sheath-dress?ID=12345678", "retailer": "macys", "currency": "USD" }, "title": "Women's Sleeveless Sheath Dress", "brand": "Calvin Klein", "categories": ["Women", "Dresses", "Work Dresses"], "price": { "sale": 5999, "list": 9800, "currentFormatted": "$59.99", "stockStatus": "InStock" }, "stats": { "rating": 4.6, "reviewCount": 9, "ratingPercentage": 92 }, "options": [ { "type": "Color", "values": [{ "id": "1", "name": "Black" }] }, { "type": "Size", "values": [{ "id": "10", "name": "M" }, { "id": "12", "name": "L" }] } ], "variants": [ { "id": "987654", "sku": "192837465012", "options": ["Black", "M"], "price": { "stockStatus": "InStock" }, "extraInfo": { "upc": "192837465012" } } ], "medias": [{ "type": "Image", "url": "https://slimages.macysassets.com/is/image/MCY/products/.../main.jpg" }] } ``` ## 요금 이벤트당 과금 — 실제로 저장된 항목에 대해서만 비용이 청구됩니다: | 이벤트 | 가격 | 포함 내용 | |---|---|---| | 상품 크롤링 | $0.006 | 전체 상세 정보(변형, SKU/UPC, 가격, 이미지, 평점)를 포함한 상품 1건 | | 기사 크롤링 | $0.002 | Macy's Inc. 뉴스 기사 1건 — 제목, 작성자, 날짜, 본문, 이미지 | 상위 Apify 플랜에서는 볼륨 할인이 자동 적용됩니다(최저 상품당 $0.0045). 1,000개 상품 크롤링은 정가 기준 약 $6.00입니다. ## 팁 - **미국 레지덴셜 프록시를 사용하세요.** 상품 상세 엔드포인트는 간헐적으로 레이트 리밋에 걸립니다. 레지덴셜 세션 로테이션은 깔끔하게 통과하지만, 데이터센터 IP는 403을 더 자주 만납니다. - **동시성은 적당히 유지하세요.** `maxConcurrency` 2~3이 최적 구간입니다 — 그보다 높이면 처리량 향상 없이 레이트 리밋만 더 자주 발생합니다. - **단독 ID보다는 카테고리 URL을 사용하세요.** URL에는 API가 기대하는 카테고리 경로가 담겨 있습니다 — 단독 ID만 사용하면 더 광범위하거나 빈 결과 집합으로 해석될 수 있습니다. - 상품 변형이나 설명이 필요 없다면 **`includeProductDetails`를 꺼서** 빠른 리스팅 수준 스윕(이름, 브랜드, 리스팅 가격, 이미지, 평점)을 수행하세요. --- # Bluesky Scraper — 게시물, 프로필, 피드 및 인터랙션 - **URL:** https://proooxy.com/ko/tools/bluesky-scraper/ - **유형:** tools - **설명:** AT Protocol을 통해 Bluesky의 게시물, 프로필, 팔로워, 피드, 스레드, 좋아요한 사용자, 리포스트한 사용자를 추출합니다 — 앱 비밀번호를 사용하면 인증이 필요한 검색과 해시태그 결과도 가져올 수 있습니다. 클린하고 정규화된 JSON. - **요약:** Bluesky의 게시물, 프로필, 피드, 인터랙션을 크롤링합니다. - **카테고리:** social - **기술 스택:** TypeScript, AT Protocol - **마켓/지역:** 글로벌 - **Apify 등록 페이지:** https://apify.com/autofacts/bluesky-scraper - **키워드:** bluesky 크롤링, bluesky api 데이터 수집, at protocol 데이터, bluesky 게시물 스크래퍼, bluesky 프로필 데이터, bluesky 해시태그 수집, 소셜 미디어 데이터 추출 - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 11가지 모드 — search, profile, posts, followers, following, feed, thread, likers, reposters, actorLikes, hashtag - 프로필, 게시물, 팔로워, 팔로잉, 피드, 스레드, 좋아요한 사용자, 리포스트한 사용자까지 — 인증 정보 없이 퍼블릭 API로 조회 - 인증이 필요한 앱 비밀번호 모드 — search, hashtag, 그리고 본인 계정의 좋아요(actorLikes) - 게시물 인게이지먼트 내보내기 — 게시물별 좋아요·리포스트 전체 목록 - 스레드 평탄화 — 설정 가능한 깊이까지 답글 트리를 탐색 - 모든 목록 엔드포인트에서 설정한 아이템 상한까지 자동 커서 페이지네이션 수행 - 모든 모드에서 게시물과 프로필에 동일하게 정규화된 JSON 구조 - 안정적인 HTTP 처리 — 요청 스로틀링, 지수 백오프, 429/5xx에 대한 재시도 **활용 사례:** - 인증된 검색을 통한 브랜드 및 키워드 모니터링 - 네트워크 전반의 해시태그 및 트렌드 추적 - 오디언스 내보내기 — 크리에이터나 브랜드의 팔로워·팔로잉 목록 - 인게이지먼트 분석 — 특정 게시물에 누가 좋아요·리포스트했는지 정확히 파악 - 클린하고 정규화된 JSON으로 BI, 분석, RAG 파이프라인용 데이터셋 구축 - 게시물 아래 대화·스레드 아카이빙 **입력 파라미터:** - `mode` (string, 선택) — 무엇을 크롤링할지 지정: posts, profile, followers, following, feed, thread, likers, reposters, actorLikes, search, hashtag 중 선택(기본값: posts). - `handles` (array, 선택) — profile/posts/followers/following/actorLikes 모드에 사용할 Bluesky 핸들, 예: bsky.app. - `query` (string, 선택) — 검색어(search 모드) 또는 해시태그(hashtag 모드 — #이 자동으로 붙음). - `postUri` (string, 선택) — 게시물의 AT URI — thread, likers, reposters 모드에서 사용. - `feedUri` (string, 선택) — 커스텀 피드의 AT URI — feed 모드에서 사용. - `identifier` (string, 선택) — 인증이 필요한 모드(search, hashtag, actorLikes)용 Bluesky 로그인 핸들/이메일. - `appPassword` (string, 선택) — 인증이 필요한 모드용 Bluesky 앱 비밀번호(메인 계정 비밀번호 아님). - `maxItems` (number, 선택) — 저장할 게시물/프로필 최대 개수. 각 항목이 하나의 과금 이벤트입니다(기본값: 100). **자주 묻는 질문:** **Q: Bluesky 인증 정보가 필요한가요?** search, hashtag, actorLikes 모드에서만 필요합니다 — Bluesky 설정에서 앱 비밀번호를 생성해 appPassword로 전달하세요. profile, posts, followers, following, feed, thread, likers, reposters 모드는 모두 퍼블릭 AT Protocol API로 인증 없이 동작합니다. **Q: 아무 계정의 좋아요 목록이나 내보낼 수 있나요?** 아니요. Bluesky API는 인증된 계정 자신의 actorLikes만 노출하므로, handle과 로그인 identifier가 동일한 계정을 가리켜야 합니다. **Q: 게시물이나 피드의 URI는 어떻게 찾나요?** AT URI는 at://did:plc:.../app.bsky.feed.post/... 형태입니다 — Bluesky API 출력이나 개발자 도구에서 복사하세요. 피드 URI는 app.bsky.feed.generator 컬렉션을 사용합니다. **Q: 앱 비밀번호를 사용해도 안전한가요?** 네 — 메인 비밀번호가 아니라 Bluesky 앱 비밀번호(설정 → 앱 비밀번호에서 생성)를 사용하세요. 권한 범위가 제한되어 있고 언제든 취소할 수 있으며, 시크릿 입력값으로 전달됩니다. ## 출력 예시 ```json { "itemType": "post", "mode": "posts", "uri": "at://did:plc:.../app.bsky.feed.post/...", "author": { "did": "did:plc:...", "handle": "bsky.app", "displayName": "Bluesky", "followersCount": 1234567 }, "text": "Example post text", "createdAt": "2026-06-11T00:00:00Z", "replyCount": 10, "repostCount": 20, "likeCount": 100, "langs": ["en"], "url": "https://bsky.app/profile/bsky.app/post/..." } ``` ## 요금 이벤트당 과금: 저장된 항목(게시물 또는 프로필) **1개당 $0.001**. 1,000개를 내보내면 약 $1.00이며, `maxItems`로 처리량과 비용을 모두 제한할 수 있습니다. ## 팁 - **퍼블릭 모드부터 시작하세요.** 프로필, 게시물, 팔로워, 인게이지먼트(likers/reposters)는 로그인이 필요 없습니다 — 앱 비밀번호 인증은 search와 hashtag 실행에만 사용하세요. - **게시물뿐 아니라 인게이지먼트도 내보내세요.** likers와 reposters 모드는 누가 게시물을 확산시켰는지 정확히 보여줍니다 — 대부분의 Bluesky 스크래퍼가 놓치는 신호입니다. - 대형 계정의 팔로워/팔로잉을 가져올 때는 **`maxItems`를 제한**해 실행 속도를 빠르게 유지하고 비용을 예측 가능하게 하세요. --- # ClinicalTrials.gov Scraper — 임상시험, 참가 조건 및 결과 - **URL:** https://proooxy.com/ko/tools/clinical-trials-scraper/ - **유형:** tools - **설명:** 질환, 중재법, 후원기관, 지역, 상태, NCT ID로 ClinicalTrials.gov 공식 v2 API를 검색합니다. 참가 조건, 결과 메타데이터, 증분 업데이트가 포함된 정규화된 임상시험 레코드를 내보냅니다 — API 키 불필요. - **요약:** ClinicalTrials.gov의 임상시험, 참가 조건, 결과를 검색합니다. - **카테고리:** public-data - **기술 스택:** TypeScript, REST API - **마켓/지역:** 글로벌 - **Apify 등록 페이지:** https://apify.com/autofacts/clinical-trials-scraper - **키워드:** clinicaltrials.gov api 데이터, 임상시험 데이터, 임상시험 데이터셋, 모집 중인 임상시험 데이터, 임상시험 참가 조건 데이터, 제약 파이프라인 모니터링, RAG용 임상시험 데이터 - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 공식 ClinicalTrials.gov v2 API — API 키 불필요 - 다중 필드 검색 — 질환, 중재법, 후원기관, 지역, 자유 텍스트 쿼리 - 모집 상태(9개 값, OR 조합)와 단계(Early Phase 1 → Phase 4)로 필터링 - 하나 또는 여러 특정 임상시험에 대한 NCT-ID 직접 조회 - updatedSince를 통한 증분 모니터링 — 지정한 날짜 이후 변경된 임상시험만 반환 - 요약 또는 전체 출력 — full 모드는 원본 프로토콜, 파생, 결과 섹션을 추가 - 제목, 요약, 참가 조건, 결과로부터 생성되는 RAG-레디 문단 청킹 - 결과 시그널 — hasResults 및 참가자 흐름·결과 측정·이상반응 플래그 - 파생된 MeSH 용어와 정규화된 후원기관·공동연구기관·지역 데이터 **활용 사례:** - 후원기관 또는 질환별 제약/바이오테크 파이프라인 모니터링 - CRO 및 사이트 실현 가능성 조사 — 지역, 단계, 질환별 모집 중인 임상시험 - 신규 등록 또는 업데이트된 임상시험에 대한 경쟁 인텔리전스 - 활발히 모집 중인 임상시험 전반의 환자 모집 조사 - 체계적 문헌고찰 — 대규모의 참가 조건, 결과, 결과 메타데이터 - 청킹된 임상시험 텍스트로 구축하는 의료 AI/RAG 지식베이스 **입력 파라미터:** - `condition` (string, 선택) — 검색할 질환명, 예: diabetes. - `status` (array, 선택) — 모집 상태 필터, OR 조합, 예: RECRUITING, COMPLETED. - `phase` (array, 선택) — 임상시험 단계 — Not Applicable, Early Phase 1, Phase 1–4. - `nctIds` (array, 선택) — ClinicalTrials.gov NCT ID로 특정 임상시험 조회. - `updatedSince` (string, 선택) — YYYY-MM-DD — 이 날짜 이후 LastUpdatePostDate를 가진 임상시험만 반환. - `outputFields` (string, 선택) — summary(기본값, 정규화됨) 또는 full(원본 프로토콜/파생/결과 섹션 추가). - `chunking` (string, 선택) — RAG 텍스트 청킹: paragraph(기본값) 또는 none. - `maxItems` (number, 선택) — 저장할 임상시험 최대 개수. 각 항목이 하나의 과금 이벤트입니다(기본값: 10). **자주 묻는 질문:** **Q: API 키가 필요한가요?** 아니요. ClinicalTrials.gov의 v2 API는 완전히 공개되어 있습니다 — 액터는 인증 없이 식별용 User-Agent만 전송합니다. **Q: 정규화된 필드뿐 아니라 원본 임상시험 데이터도 받을 수 있나요?** 네. outputFields를 'full'로 설정하면 정규화된 요약 필드와 함께 원본 protocolSection, derivedSection, resultsSection이 포함됩니다. **Q: 최근 변경된 임상시험은 어떻게 모니터링하나요?** updatedSince를 YYYY-MM-DD 날짜로 설정하세요. 액터는 ClinicalTrials.gov의 LastUpdatePostDate를 기준으로 필터링해 해당일 이후 업데이트된 임상시험만 반환합니다 — 일간 파이프라인 모니터링에 적합합니다. **Q: 커버리지는 전 세계인가요, 미국에 한정되나요?** 전 세계입니다. ClinicalTrials.gov는 전 세계의 임상시험을 등록하며, 각 임상시험의 locations 배열에는 제공된 경우 국가, 주, 도시, 시설 정보가 포함됩니다. ## 출력 예시 ```json { "itemType": "study", "nctId": "NCT01884792", "title": "Example Diabetes Study", "officialTitle": "A Study of Example Diabetes Study", "status": "COMPLETED", "phase": ["PHASE2"], "studyType": "INTERVENTIONAL", "conditions": ["Diabetes Mellitus"], "sponsors": { "lead": "Example Sponsor Inc.", "collaborators": [] }, "locations": [ { "facility": "Example Medical Center", "city": "Boston", "state": "MA", "country": "United States", "status": "COMPLETED" } ], "hasResults": true, "resultsSummary": { "hasParticipantFlow": true, "hasOutcomeMeasures": true, "hasAdverseEvents": true }, "lastUpdate": "2026-06-01", "url": "https://clinicaltrials.gov/study/NCT01884792" } ``` ## 요금 이벤트당 과금: 요약이든 전체 출력 모드든 관계없이 저장된 임상시험 **1건당 $0.002**. 1,000건을 내보내면 약 $2.00이며, `maxItems`로 처리량과 비용을 모두 제한할 수 있습니다. ## 팁 - **변경 모니터링에는 `updatedSince`를 사용하세요.** 어제 날짜로 매일 실행을 예약하면 새로 등록되거나 수정된 임상시험만 포착할 수 있습니다 — 경쟁사의 파이프라인을 추적하는 가장 저렴한 방법입니다. - **`condition` + `status: [RECRUITING]` + `phase`를 조합**하면 전체 레지스트리를 가져오지 않고도 타겟팅된 실현 가능성 목록을 만들 수 있습니다. - 원본 섹션이 필요한 경우에만 **`outputFields: full`을 설정**하세요 — 정규화된 요약에도 이미 참가 조건, 후원기관, 지역, 결과 플래그가 포함되어 있습니다. --- # CourtListener Scraper — 판례, 도켓 및 전문 - **URL:** https://proooxy.com/ko/tools/courtlistener-scraper/ - **유형:** tools - **설명:** CourtListener에서 미국 판례, RECAP 도켓, 구두변론, 판사, 인용정보를 조회합니다 — 판례 전문과 RAG-레디 청크까지 포함합니다. 법원, 날짜, 키워드로 필터링할 수 있습니다. - **요약:** 리걸 AI를 위한 미국 판례, 도켓, 판례 전문. - **카테고리:** public-data - **기술 스택:** TypeScript, Cheerio - **마켓/지역:** 미국 - **Apify 등록 페이지:** https://apify.com/autofacts/courtlistener-scraper - **키워드:** courtlistener api 데이터, 판례 데이터 api, 법원 판결문 크롤링, recap 도켓 데이터, 법률 리서치 데이터, 미국 판례 데이터셋, RAG용 판례 데이터 - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 하나의 액터에 6가지 검색 유형 — 판례, 도켓(RECAP), RECAP 문서, 구두변론, 판사, 인용 조회 - 판례 전문 — 300자짜리 스니펫이 아니라 검색 결과를 따라 데이터베이스에서 완전한 판결문을 가져옴 - RAG-레디 청킹 — 약 2000자 단위 문단 청크마다 순서 인덱스 부여 - 인용 해석 — 최대 250개의 인용 문자열(예: 576 U.S. 644)을 일치하는 판례로 매칭 - 불리언 전문 검색과 법원 ID, 제출일 범위, 정렬 순서 필터 - CourtListener의 응답 형식 전반에 걸쳐 레이트 리밋을 인식하고 429에 정밀하게 백오프하는 페이싱 - 설정한 아이템 상한까지 커서 페이지네이션으로 스트리밍 - 직접 토큰을 가져오거나 내장된 로테이팅 토큰 풀 사용 가능 **활용 사례:** - 법률 리서치 — 법원, 기간, 키워드별로 판례 전문 수집 - 소송 인텔리전스 — 주제와 날짜별로 법원의 도켓 활동 추적 - 리걸 AI/RAG — 청킹되어 임베딩 준비가 된 판례 코퍼스 구축 - 인용 분석 — 준비서면의 인용을 연결된 판례 기록 및 피인용 횟수로 해석 - 실증 법학 연구 — 판사, 구두변론 메타데이터, 판례 트렌드 - 법률 저널리즘 — 특정 법원에 새로 제출된 판례나 도켓 모니터링 **입력 파라미터:** - `searchType` (string, 선택) — 조회할 대상: opinions, dockets, recap_docs, oral_arguments, judges, citation 중 선택(기본값: opinions). - `query` (string, 선택) — 불리언 연산자를 포함한 전문 검색 쿼리 — 법원 필터나 인용 조회를 사용하지 않는 한 필수. - `citations` (array, 선택) — 해석할 인용 문자열(최대 250개) — citation 모드에서 필수. - `court` (string, 선택) — CourtListener 법원 ID, 예: scotus, ca9, nyed. - `dateFrom` (string, 선택) — 이 날짜 이후 제출된 판례(YYYY-MM-DD). - `includeFullText` (boolean, 선택) — 판례의 전문과 RAG 청크를 가져옴(기본값: false). - `apiToken` (string, 선택) — 본인의 CourtListener API 토큰. 생략 시 내장된 로테이팅 풀로 대체됩니다. - `maxItems` (number, 선택) — 저장할 최대 항목 수. 각 항목이 하나의 과금 이벤트입니다(기본값: 5). **자주 묻는 질문:** **Q: CourtListener API 토큰이 필요한가요?** CourtListener는 토큰을 요구합니다. apiToken으로 본인의 무료 토큰을 제공하거나, 액터에 내장된 로테이팅 폴백 풀을 이용할 수 있습니다. 직접 토큰을 사용하면 유료/멤버십 등급에서 처리량을 높일 수 있습니다. **Q: 모든 검색 유형에서 판례 전문을 받을 수 있나요?** 아니요. 전문 및 청킹(includeFullText)은 opinions에만 적용되며, 실행 속도를 위해 기본값은 꺼져 있습니다. dockets, RECAP 문서, 구두변론, 판사, 인용 결과는 메타데이터만 반환합니다. **Q: 어떤 법원이 커버되나요?** CourtListener가 색인하는 모든 법원입니다 — 미국 연방법원(SCOTUS, 항소법원, RECAP을 통한 지방법원)과 다수의 주법원이 포함되며, scotus, ca9, nyed 같은 CourtListener 고유의 법원 ID로 지정합니다. **Q: 얼마나 빠르게 실행할 수 있나요?** 처리량은 토큰의 레이트 리밋에 좌우되며(CourtListener 무료 등급은 분당 몇 건 수준), 429 발생 시 자동으로 백오프합니다. 멤버십 토큰을 사용하면 상한이 올라갑니다. ## 출력 예시 ```json { "itemType": "legal", "searchType": "opinions", "id": "10380001", "title": "Climate United Fund v. Citibank, N.A.", "court": "Court of Appeals for the D.C. Circuit", "date": "2025-04-16", "url": "https://www.courtlistener.com/opinion/10380001/...", "citations": [], "citeCount": 0, "docketNumber": "23-5138", "fullText": "...", "chunks": [{ "text": "...", "order": 0 }], "meta": { "courtId": "cadc", "clusterId": 10380001 } } ``` ## 요금 이벤트당 과금 — 저장된 항목에 대해서만 비용이 청구됩니다: | 이벤트 | 가격 | 포함 내용 | |---|---|---| | 전문이 포함된 판례 | $0.005 | 전문 + RAG 청크가 포함된 판례 1건 저장 | | 메타데이터 항목 | $0.002 | 도켓, 구두변론, 판사, 인용, 또는 메타데이터 전용 레코드 1건 | 1,000건의 판례 전문 코퍼스는 약 $5.00이며, `maxItems`로 처리량과 비용을 모두 제한할 수 있습니다. ## 팁 - **실제로 임베딩할 판례에만 `includeFullText`를 켜세요.** 판례마다 추가 요청 비용이 발생하며 기본값은 꺼져 있습니다 — 먼저 법원과 날짜로 좁게 필터링하세요. - **준비서면을 보강하려면 `citation` 모드를 사용하세요.** 인용 문자열을 붙여넣으면 한 번의 실행으로 연결된 판례 기록과 피인용 횟수를 받을 수 있습니다. - 대규모 작업에는 **본인의 CourtListener 토큰을 사용하세요** — 무료 등급의 낮은 레이트 리밋이 주된 처리량 병목입니다. --- # SEC EDGAR Scraper — 공시, 전문 검색 및 XBRL 재무 데이터 - **URL:** https://proooxy.com/ko/tools/sec-edgar-scraper/ - **유형:** tools - **설명:** SEC EDGAR 공시 메타데이터, 10-K/10-Q 전문 섹션, EDGAR 전문 검색 결과, XBRL 재무 데이터를 클린한 RAG-레디 JSON으로 추출합니다. API 키 불필요. - **요약:** SEC 공시, 10-K/10-Q 텍스트, XBRL 재무 데이터 — RAG-레디. - **카테고리:** public-data - **기술 스택:** TypeScript, Cheerio - **마켓/지역:** 미국 - **Apify 등록 페이지:** https://apify.com/autofacts/sec-edgar-scraper - **키워드:** sec edgar api 데이터, sec edgar 크롤링, 10-k 공시 데이터, 10-q 스크래퍼, xbrl 재무 데이터, edgar 전문 검색, RAG용 sec 공시 데이터, 기업 재무 데이터 api - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 하나의 액터에 4가지 모드 — 공시 메타데이터, 문서 전문, EDGAR 전문 검색, XBRL 재무 데이터 - RAG-레디 청킹 — section, paragraph(약 2000자), none 중 선택 가능하며, 모든 청크에 원본 Item과 순서가 태그됨 - 10-K/10-Q의 'Item N' 섹션 자동 파싱(Item 1A 위험 요인, Item 7 MD&A 등) - 택소노미, 태그, 레이블, 단위, 값, 회계연도/기간, 서식, accession number를 포함한 XBRL 데이터 - 팩트 중복 제거로 XBRL 재작성 데이터를 기간당 한 행으로 축약하며 최초 공시 내용을 유지 - SEC 공식 ticker 파일 기준으로 ticker, CIK, 회사명을 매칭하며 유사 매칭 폴백 지원 - 따옴표 구문, 서식 유형, 기간 필터를 지원하는 EDGAR 전문 검색(2001년 → 현재) - SEC 규정을 준수하는 레이트 리밋과 User-Agent — API 키와 로그인 모두 불필요 **활용 사례:** - 섹션 단위로 청킹되어 임베딩 준비가 된 10-K, 10-Q 텍스트가 필요한 금융 RAG/LLM 파이프라인 - 투자 리서치 — 매출, 순이익, 희석 EPS 시계열을 클린한 XBRL 행으로 수집 - 컴플라이언스 및 지분 모니터링 — 기업 전반의 Form 4, SC 13D/13G, 위험 요인 문구 - 커스텀 크롤러를 직접 구축하지 않고 구조화된 EDGAR 데이터가 필요한 핀테크 제품 - 전문 검색을 통한 시장·산업 리서치 — 어떤 기업이 특정 문구를 언제부터 공시했는지 파악 - 클린한 XBRL 재무 데이터 행을 활용하는 BI 및 스프레드시트 워크플로우 **입력 파라미터:** - `mode` (string, 필수) — 추출 모드: filings, fulltext, search, facts 중 선택(기본값: filings). - `ticker` (string, 선택) — 주식 티커, 예: AAPL. 실행 시 ticker/cik/companyName 중 하나가 필수. - `cik` (string, 선택) — SEC Central Index Key, 예: 320193 — ticker와 companyName보다 우선 적용. - `companyName` (string, 선택) — SEC 등록 회사명. 공식 ticker 파일과 정확히 또는 유사하게 매칭됩니다. - `query` (string, 선택) — EDGAR 전문 검색 표현식, 예: "supply chain disruption" — search 모드에서 필수. - `formTypes` (array, 선택) — 포함할 서식 유형, 예: 10-K, 10-Q, 8-K, S-1, DEF 14A, Form 4. 비워두면 전체 서식. - `chunking` (string, 선택) — 전문 RAG 청킹 전략: section, paragraph(약 2000자), none 중 선택(기본값: section). - `maxItems` (number, 선택) — 저장할 최대 항목 수. 저장된 각 항목이 하나의 과금 이벤트입니다(기본값: 100). **자주 묻는 질문:** **Q: SEC API 키가 필요한가요?** 아니요. SEC EDGAR는 무료 공개 데이터입니다. 액터는 규정을 준수하는 User-Agent로 자신을 식별하고 SEC의 레이트 리밋 아래에서 자동으로 스로틀링합니다 — 키도 로그인도 필요 없습니다. **Q: 데이터는 얼마나 과거까지 거슬러 올라가나요?** EDGAR 전문 검색(EFTS)은 2001년 5월 4일 이후 공시를 커버하며 쿼리당 최대 10,000건으로 제한됩니다. 공시 메타데이터는 1994년까지 거슬러 올라가며, XBRL 재무 데이터는 기업이 XBRL로 보고한 모든 내용을 포함합니다. **Q: 출력이 LLM과 RAG에 바로 사용 가능한가요?** 네. fulltext 모드에서 액터는 10-K/10-Q를 'Item N' 섹션으로 파싱하고, 원본 Item과 순서 인덱스가 태그된 임베딩 준비 완료 청크(section 또는 약 2000자 paragraph)를 생성합니다. **Q: fulltext 모드에서 일부 공시가 건너뛰어지는 이유는 무엇인가요?** 주요 문서가 HTML이나 TXT가 아닌 공시(예: XBRL 전용 Form 4 XML)는 섹션 파싱이 불가능하므로 건너뛰며, 이 경우 과금되지 않습니다. ## 출력 예시 ```json { "itemType": "filing-fulltext", "title": "Apple Inc. — 10-K 2025-10-31", "company": "Apple Inc.", "ticker": "AAPL", "cik": "0000320193", "formType": "10-K", "filedAt": "2025-10-31", "accessionNo": "0000320193-25-000123", "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/...", "sections": [ { "name": "Item 1A — Risk Factors", "charCount": 38241 }, { "name": "Item 7 — Management's Discussion and Analysis", "charCount": 21077 } ], "chunks": [ { "text": "The Company's business, reputation, results of operations...", "section": "Item 1A — Risk Factors", "order": 12 } ], "textLength": 220151 } ``` ## 요금 이벤트당 과금 — 실제로 저장된 항목에 대해서만 비용이 청구됩니다: | 이벤트 | 가격 | 포함 내용 | |---|---|---| | 공시 메타데이터 / 검색 결과 | $0.001 | 공시 메타데이터 레코드 또는 전문 검색 결과 1건 | | 전문 공시 | $0.005 | 추출, 섹션 파싱, RAG용 청킹까지 완료된 공시 1건 | | XBRL 데이터 | $0.0002 | XBRL 재무 데이터 행 1건 | 1,000건의 공시 메타데이터 수집은 약 $1.00, XBRL 데이터 1,000건은 약 $0.20입니다. `maxItems`로 처리량과 비용을 모두 제한할 수 있습니다. ## 팁 - **재무 데이터에는 `facts` 모드로 시작하세요.** 숫자만 필요하다면 전체 공시를 파싱하는 것보다 XBRL 행(매출, 순이익, EPS)을 가져오는 편이 훨씬 저렴하고 깔끔합니다. - **RAG에는 `chunking: section`을 사용하세요.** 각 Item(위험 요인, MD&A)이 온전하게 유지되어, 리트리벌 시 일관되고 인용 가능한 구절을 반환합니다. - **전문 검색은 2001년 이후를 커버합니다.** 더 오래된 공시가 필요하다면 CIK로 회사를 특정한 뒤 공시 메타데이터를 직접 가져오세요. --- # USAspending.gov Scraper — 연방 지출, 수혜자 및 집계 데이터 - **URL:** https://proooxy.com/ko/tools/usaspending-scraper/ - **유형:** tools - **설명:** USAspending.gov 공식 API v2로 연방정부 계약, 보조금, 대출 정보를 조회합니다. 기관, 수혜자, NAICS/PSC, 날짜로 필터링하고, 수혜자 프로필, 카테고리별 합계, 주/카운티/선거구 단위 지리 집계 데이터를 가져올 수 있습니다. API 키 불필요. - **요약:** USAspending.gov의 연방 지출, 수혜자, 지출 집계 데이터. - **카테고리:** public-data - **기술 스택:** TypeScript, REST API - **마켓/지역:** 미국 - **Apify 등록 페이지:** https://apify.com/autofacts/usaspending-scraper - **키워드:** usaspending api 데이터, 연방정부 계약 데이터, 정부 지출 데이터, 연방 보조금 데이터, govcon 시장 조사, 연방 지출 내역 데이터, naics psc 계약 데이터 - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 공식 USAspending.gov API v2 — API 키 불필요 - 키워드, 회계연도/기간, 기관, 수혜자, NAICS, PSC, 금액, 지급 유형을 아우르는 지급 내역 검색 - 6가지 모드 — 지급 내역 검색, 지급 상세, 하위 지급, 수혜자 프로필, 카테고리별 합계, 지리 데이터 - 18개의 카테고리 집계 차원(수혜자, NAICS, PSC, 기관, 카운티, 선거구, CFDA, TAS 등) - 인구 및 1인당 필드를 포함한 주, 카운티, 연방 하원 선거구, 국가별 지리 집계 - 여러 해에 걸친 대규모 결과 집합에 대한 자동 날짜 분할(월별/분기별) - 지급 유형 코드를 유효한 API 요청 그룹으로 자동 배칭 - 생성된 지급 ID를 통한 정확한 지급 상세 및 하위 지급 조회 **활용 사례:** - GovCon 사업 개발 — NAICS, PSC, 기관별로 기회와 기존 계약업체 파악 - 경쟁사의 지급 이력과 기관 관계에 대한 경쟁 인텔리전스 - 특정 수혜자나 지역으로 연방 지출을 추적하는 탐사 저널리즘 - 카테고리, 지급 유형, 기간별 지출 트렌드에 대한 정책 및 학술 연구 - 수혜자의 연방 지급 및 지출 이력에 대한 실사 검토 - 주, 카운티, 연방 하원 선거구별 연방 지출을 매핑하는 BI 대시보드 **입력 파라미터:** - `mode` (string, 선택) — 워크플로우: awards, awardDetail, subawards, recipient, byCategory, geography 중 선택(기본값: awards). - `keywords` (array, 선택) — 지급 내역 검색을 위한 USAspending 자유 텍스트 키워드 필터. - `fiscalYear` (number, 선택) — 연방 회계연도(10월 1일~9월 30일 기간에 매핑). - `awardTypes` (array, 선택) — USAspending 지급 유형 코드. 혼합된 그룹은 유효한 요청으로 자동 분할됩니다. - `agency` (string, 선택) — 지급 기관 또는 재정 지원 기관명 정확 일치 필터. - `naicsCodes` (array, 선택) — 지급 내역이 일치해야 하는 NAICS 코드. - `awardId` (string, 선택) — 생성된 지급 ID — awardDetail, subawards 모드에서 실행 시 필수. - `maxItems` (number, 선택) — 저장할 최대 레코드 수. 각 행이 하나의 과금 이벤트입니다(기본값: 100). **자주 묻는 질문:** **Q: API 키가 필요한가요?** 아니요. USAspending.gov API v2는 공개되어 있으며 키나 로그인이 필요 없습니다. **Q: 혼합된 지급 유형 코드는 왜 여러 요청으로 분할되나요?** USAspending은 서로 다른 지급 유형 그룹(계약, IDV, 보조금, 대출, 기타 재정 지원, 직접 지급)의 코드가 섞인 단일 검색을 거부합니다. 액터는 요청된 코드를 자동으로 그룹화하고, 각 출력 행에 일치하는 지급 유형 코드를 태그합니다. **Q: 어떤 지리적 분류를 이용할 수 있나요?** 주, 카운티, 연방 하원 선거구, 국가 단위이며, 이행 장소 또는 수혜자 소재지 기준으로 범위가 지정되고, 인구 및 1인당 필드가 포함됩니다. **Q: 실행 비용은 어떻게 책정되나요?** 저장된 행 1개당 $0.001의 이벤트당 과금이며, 성공적으로 반환된 레코드마다 한 번씩 청구됩니다. maxItems로 행 수와 비용을 제한할 수 있습니다. ## 출력 예시 ```json { "itemType": "award", "title": "HT940216C0001 — HUMANA GOVERNMENT BUSINESS INC", "date": "2016-02-01", "awardId": "HT940216C0001", "generatedId": "CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-", "recipient": { "name": "HUMANA GOVERNMENT BUSINESS INC", "uei": "...", "duns": "..." }, "awardingAgency": "Department of Defense", "fundingAgency": "Department of Defense", "amount": 51269205263.03, "awardType": "IDV_B_C", "naics": { "code": "...", "description": "..." }, "placeOfPerformance": { "stateCode": "...", "state": "..." }, "awardTypeCodes": ["IDV_B_C"], "url": "https://www.usaspending.gov/award/CONT_AWD_HT940216C0001_9700_-NONE-_-NONE-" } ``` ## 요금 이벤트당 과금: 저장된 레코드 **1건당 $0.001**이며, 성공적으로 반환된 행마다 한 번씩 청구됩니다. 약 1,000건 실행은 약 $1.00이며, `maxItems`로 처리량과 비용을 모두 제한할 수 있습니다. ## 팁 - GovCon 잠재고객 발굴에는 **NAICS나 PSC 코드를 우선 활용하세요** — 판매하는 상품/서비스에 직접 매핑되며 가장 깔끔한 관련 지급 내역 집합을 반환합니다. - 개별 지급 상세를 가져오기 전에 **`byCategory` 모드를 사용**해 시장의 상위 수혜자나 기관 순위를 먼저 파악하세요. - **geography 모드는 기간/지급 유형 조합당 첫 페이지(최대 100행)만 반환합니다** — 주/카운티/선거구 롤업에는 `maxItems`를 올리기보다 필터를 좁히세요. --- # YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM - **URL:** https://proooxy.com/ko/tools/youtube-transcript-scraper/ - **유형:** tools - **설명:** 동영상, Shorts, 재생목록, 채널에서 YouTube 자막과 스크립트를 JSON, SRT, VTT, 일반 텍스트, 또는 클린한 LLM-레디 텍스트로 추출합니다. 100개 이상의 언어, 풍부한 메타데이터, API 키 불필요 — 추출 실패 시 과금되지 않습니다. - **요약:** YouTube 스크립트를 JSON, SRT, VTT, 또는 LLM-레디 텍스트로 제공합니다. - **카테고리:** social - **기술 스택:** TypeScript, InnerTube - **마켓/지역:** 글로벌 - **Apify 등록 페이지:** https://apify.com/autofacts/youtube-subtitle-transcript-scraper - **키워드:** youtube 자막 추출, youtube transcript api, youtube 자막 다운로드, youtube 캡션 텍스트 변환, 유튜브 대량 스크립트 추출, youtube 자막 srt vtt, LLM용 youtube 스크립트 - **게시일:** 2026-07-01 - **수정일:** 2026-07-01 **주요 기능:** - 하나의 입력으로 동영상, Shorts, youtu.be 링크, 재생목록, 채널을 처리 — 한 번의 실행에서 혼합 가능 - 5가지 출력 포맷 — JSON(타임스탬프 포함), SRT, VTT, 일반 텍스트, LLM-레디([Music], [Applause], 화자 레이블 제거) - 100개 이상의 언어를 우선순위 목록으로 지정 가능, 자동 생성 자막 폴백 켜고 끄기 가능 - 풍부한 메타데이터 — 제목, 채널, 설명, 게시일, 조회수, 썸네일, 길이, 이용 가능한 언어 - maxVideos 상한과 1~10 동시성으로 재생목록·채널 전체를 배치 처리 - 레지덴셜 프록시 지원과 선택적 쿠키로 봇 체크 차단 감소 - 다층 추출 — InnerTube 클라이언트 전반에 최대 9단계 폴백, 최후 수단으로 yt-dlp PO-token 사용 - 서킷 브레이커와 항목별 에러 처리로 대규모 배치도 안정적으로 실행 **활용 사례:** - 영상 음성으로 RAG나 파인튜닝 데이터셋을 구축하는 AI/ML 팀(LLM-레디 텍스트 출력) - 스크립트를 블로그 게시물, 쇼노트, 소셜 캡션으로 재활용하는 콘텐츠 팀 - 색인 생성과 키워드 리서치를 위해 검색 가능한 영상 텍스트를 추출하는 SEO 마케터 - 표준 SRT/VTT 자막 파일이 필요한 편집자 및 퍼블리셔 - 채널이나 재생목록 전체에서 스크립트를 일괄 수집하는 연구자 - YouTube API 키 없이 구조화되고 타임스탬프가 포함된 캡션이 필요한 개발자 **입력 파라미터:** - `urls` (array, 선택) — YouTube URL 또는 단독 ID — 동영상, Shorts, youtu.be 링크, 재생목록, 채널. 실행 시 필수. - `outputFormat` (string, 선택) — 스크립트 포맷: json, srt, vtt, text, llm 중 선택(기본값: json). - `languages` (array, 선택) — 우선순위 순서의 선호 자막 언어, ISO 639-1 코드(기본값: en). - `includeAutoGenerated` (boolean, 선택) — 수동 자막이 없을 때 자동 생성 자막으로 대체(기본값: true). - `maxVideos` (number, 선택) — 실행당 처리할 동영상 수 상한, 재생목록/채널에 적용(기본값: 0 = 무제한). - `maxConcurrency` (number, 선택) — 동시에 처리할 동영상 수, 1~10(기본값: 3). - `proxyConfiguration` (object, 선택) — 프록시 설정. 기본값은 미국으로 고정된 Apify Residential. - `youtubeCookies` (string, 선택) — 봇 체크 차단을 줄이기 위한 선택적 YouTube 쿠키(Cookie 헤더 또는 cookies.txt). **자주 묻는 질문:** **Q: YouTube API 키나 로그인이 필요한가요?** 아니요. 액터는 캡션을 직접 추출합니다 — YouTube Data API 키도 로그인도 필요 없습니다. 일부 동영상에서 'Sign in to confirm you're not a bot' 차단을 줄이기 위해 선택적으로 쿠키를 입력할 수 있습니다. **Q: 어떤 언어와 캡션 유형을 지원하나요?** 100개 이상의 언어를 지원합니다. 우선순위 순서로 정렬된 ISO 639-1 코드 목록을 제공하세요(기본값: en). includeAutoGenerated를 비활성화하지 않는 한, 액터는 수동 생성 캡션을 우선하고 자동 생성 캡션으로 대체합니다. **Q: 추출에 실패한 동영상도 과금되나요?** 아니요. 과금은 스크립트 추출 이벤트당 이루어지며, 스크립트가 성공적으로 저장된 후에만 청구됩니다. 실패한 동영상은 error 필드와 함께 출력에 나타나며 과금되지 않습니다. **Q: RAG를 위한 클린한 LLM-레디 텍스트를 받을 수 있나요?** 네. outputFormat을 'llm'으로 설정하면 [Music]/[Applause] 표기와 화자 레이블이 제거되어, 임베딩과 파인튜닝에 적합한 클린한 텍스트가 생성됩니다. ## 출력 예시 ```json { "videoId": "dQw4w9WgXcQ", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "title": "Rick Astley - Never Gonna Give You Up (Official Video)", "channelName": "Rick Astley", "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw", "publishDate": "2009-10-25", "viewCount": 1761003712, "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"], "language": "en", "isAutoGenerated": false, "duration": 213, "wordCount": 487, "segmentCount": 61, "text": "We're no strangers to love, you know the rules and so do I...", "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }], "error": null } ``` ## 요금 이벤트당 과금: **성공적으로 추출된 스크립트**마다 한 번씩 청구됩니다 — 실패한 동영상은 절대 과금되지 않습니다. 채널이나 재생목록 전체를 입력해도 실제로 받은 자막에 대해서만 비용이 발생합니다. ## 팁 - RAG와 파인튜닝에는 **`outputFormat: llm`을 사용하세요** — 비음성 표기가 제거되어 임베딩에 클린한 텍스트만 전달됩니다. - **레지덴셜 프록시를 항상 켜두세요.** YouTube는 데이터센터 IP를 공격적으로 차단합니다 — 액터가 기본값을 미국 레지덴셜로 설정해둔 데에는 이유가 있습니다. - **대규모 작업은 `maxConcurrency`를 1~3으로 시작**해 점차 올리세요 — 대형 채널 크롤링에서 동시성이 높으면 레이트 리밋 위험이 커집니다. --- # Sephora Scraper(글로벌) - **URL:** https://proooxy.com/ko/tools/sephora-scraper/ - **유형:** tools - **설명:** 미국, 캐나다, EU 9개국, 아시아태평양 10개국 등 21개 스토어에서 상품 변형, 가격, 이미지, 성분, 리뷰까지 Sephora의 전체 상품 데이터를 하나의 정규화된 스키마로 추출하는 Apify 액터입니다. - **요약:** 모든 Sephora 스토어를 크롤링 — 21개 마켓, 하나의 액터. - **카테고리:** ecommerce - **기술 스택:** Python, Crawlee, curl_cffi - **마켓/지역:** 미국, 캐나다, 프랑스, 이탈리아, 독일, 스페인, 폴란드, 체코, 그리스, 루마니아, 포르투갈, 뉴질랜드, 호주, 싱가포르, 말레이시아, 태국, 인도네시아, 필리핀, 홍콩, 대만, 브루나이 - **안티봇 전략:** 레지덴셜 프록시 + curl_cffi TLS 핑거프린팅을 통한 Akamai 우회 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/sephora - **키워드:** sephora 크롤링, sephora 상품 데이터, sephora api, sephora 상품 스크래핑, sephora 가격 추적, 뷰티 상품 데이터, 화장품 데이터 추출, sephora 글로벌 스크래퍼 - **게시일:** 2026-04-18 - **수정일:** 2026-04-18 **주요 기능:** - 하나의 액터에 21개 스토어 — 미국, 캐나다, EU 9개국, APAC 10개국을 단일 SKU로 커버 - 자동 마켓 감지 — sephora.* URL을 붙여넣으면 디스패처가 알맞은 모듈로 라우팅 - 다중 마켓 혼합 실행 — 미국 + EU + SEA URL을 하나의 startUrls 목록에 담으면 `market`으로 태그된 단일 데이터셋으로 스트리밍 - 로케일에 맞는 가격 — Sephora 자체 로컬라이제이션 레이어가 반환하는 NZD, EUR, USD, AUD 등 17개 이상의 통화 - 정규화된 스키마 — 모든 마켓이 동일한 `source / brand / title / options / variants / medias / stats` 구조로 출력 - 마켓별 세션 격리 — 인증 상태가 지역 간에 섞이지 않음 - 글로벌 서킷 브레이커 — 50회 연속 실패 시 실행을 중단해 다운된 타겟에 컴퓨팅 자원을 낭비하지 않음 **활용 사례:** - 미국, EU, APAC 뷰티 마켓 전반의 범지역 가격 인텔리전스 - 마켓 간 상품 재고 및 구색 모니터링 - 새로운 Sephora 지역에 진출하는 브랜드를 위한 경쟁사 분석 - 지역별 포뮬레이션 간 성분 비교 - 리뷰 및 평점 추적 — SEA 위시리스트 신호와 미국 AI 감성 요약 포함 - 마켓별 로열티/멤버십 가격 감사 **입력 파라미터:** - `startUrls` (array, 필수) — sephora.* 스토어의 상품 또는 카테고리 URL. 호스트네임으로 마켓이 자동 감지됩니다. - `market` (string, 선택) — 선택적 마켓 재정의(us, eu-fr, eu-it, eu-de, eu-es, eu-pl, eu-cz, eu-gr, eu-ro, eu-pt, sea-nz, sea-au, sea-sg, sea-my, sea-th, sea-id, sea-ph, sea-hk, sea-tw, sea-bn). - `locale` (string, 선택) — 선택적 BCP 47 로케일(예: fr-FR, en-NZ) — 마켓 기본값을 재정의합니다. - `categoryIds` (array, 선택) — EU 전용. C479와 같은 SFCC 카테고리 ID — 카테고리 URL을 붙여넣는 대신 사용할 수 있습니다. - `proxy` (object, 선택) — Apify 프록시 설정. 레지덴셜을 강력히 권장하며, apifyProxyCountry를 타겟 마켓으로 고정하세요. - `maxConcurrency` (number, 선택) — 동시 요청 수. 기본값 5. 미국: 2-5. EU: 3. SEA: 8-16. - `maxRequestsPerCrawl` (number, 선택) — 모든 마켓을 아우르는 전역 상한. 0 = 무제한. **자주 묻는 질문:** **Q: 이 스크래퍼는 어떤 Sephora 스토어를 지원하나요?** 21개 스토어: 미국(sephora.com), 캐나다(sephora.ca), EU 9개국(FR, IT, DE, ES, PL, CZ, GR, RO, PT), APAC 10개국(NZ, AU, SG, MY, TH, ID, PH, HK, TW, BN)을 지원합니다. 마켓은 호스트네임으로 자동 감지되므로, 여러 마켓을 섞어도 입력을 바꿀 필요가 없습니다. **Q: 한 번의 실행으로 여러 마켓을 크롤링할 수 있나요?** 네. sephora.com, sephora.fr, sephora.nz URL을 하나의 startUrls 목록에 섞어서 넣으면 됩니다. 디스패처가 이를 마켓별로 그룹화하고, 각 모듈을 마켓에 맞는 인증으로 동시 실행하며, 모든 데이터셋 항목에 `market` 필드를 태그합니다. **Q: 스크래퍼는 안티봇 방어를 어떻게 처리하나요?** 모든 마켓에서 레지덴셜 프록시를 사용하며, EU와 SEA 트래픽에는 curl_cffi로 브라우저급 TLS 핑거프린팅을 적용해 Akamai를 우회합니다. 미국 트래픽은 403/429에서 로테이션하는 세션 풀을 갖춘 Crawlee의 HttpCrawler를 사용합니다. **Q: 기존 v1.x 미국 실행 설정도 계속 동작하나요?** 네. 2.0 이전 입력값(startUrls, maxConcurrency, proxy, maxRequestsPerCrawl)은 동일하게 동작합니다. 유일한 출력 변경사항은 모든 항목에 새로 추가된 `market` 키뿐이며, 이는 기존 구조를 해치지 않는 추가적 변경입니다. **Q: SEA 데이터에서 일부 필드가 null인 이유는 무엇인가요?** Sephora SEA의 API는 `lovesCount` 카운터를 노출하지 않으므로, APAC 항목은 `stats.lovesCount = null`이 됩니다. 대신 각 변형에는 불리언 `wishlisted` 필드가 있습니다. 반대로 `sentiments`(AI 리뷰 요약)와 `source.crawlUrl`은 미국 전용입니다. **Q: 마켓별로 별도의 API 토큰이나 계정이 필요한가요?** 아니요. 기존 Apify API 토큰을 그대로 사용할 수 있습니다. 액터가 내부적으로 마켓별 게스트 토큰을 처리하므로 EU/SEA에는 별도의 인증 정보가 필요 없고, 미국은 표준 Apify 레지덴셜 프록시로 동작합니다. ## 지원 마켓 | 지역 | 마켓 ID | 국가 | 통화 | 호스트네임 | |---|---|---|---|---| | 아메리카 | `us` | 미국 | USD | sephora.com | | 아메리카 | `us` | 캐나다 | CAD | sephora.ca | | EU | `eu-fr` | 프랑스 | EUR | sephora.fr | | EU | `eu-it` | 이탈리아 | EUR | sephora.it | | EU | `eu-de` | 독일 | EUR | sephora.de | | EU | `eu-es` | 스페인 | EUR | sephora.es | | EU | `eu-pl` | 폴란드 | PLN | sephora.pl | | EU | `eu-cz` | 체코 | CZK | sephora.cz | | EU | `eu-gr` | 그리스 | EUR | sephora.gr | | EU | `eu-ro` | 루마니아 | RON | sephora.ro | | EU | `eu-pt` | 포르투갈 | EUR | sephora.pt | | APAC | `sea-nz` | 뉴질랜드 | NZD | sephora.nz | | APAC | `sea-au` | 호주 | AUD | sephora.com.au | | APAC | `sea-sg` | 싱가포르 | SGD | sephora.sg | | APAC | `sea-my` | 말레이시아 | MYR | sephora.com.my | | APAC | `sea-th` | 태국 | THB | sephora.co.th | | APAC | `sea-id` | 인도네시아 | IDR | sephora.co.id | | APAC | `sea-ph` | 필리핀 | PHP | sephora.ph | | APAC | `sea-hk` | 홍콩 | HKD | sephora.hk | | APAC | `sea-tw` | 대만 | TWD | sephora.tw | | APAC | `sea-bn` | 브루나이 | BND | sephora.bn | ## 출력 예시 ```json { "market": "sea-nz", "source": { "id": 58792, "canonicalUrl": "https://www.sephora.nz/products/rare-beauty-true-to-myself-natural-matte-longwear-foundation", "retailer": "SEPHORA", "currency": "NZD" }, "brand": "Rare Beauty", "title": "True To Myself Natural Matte Longwear Foundation", "description": "

A self-priming and self-setting foundation...

", "ingredients": "Aqua/Water, Cyclopentasiloxane, Glycerin...", "currentSku": "770225", "categories": ["makeup/face/foundation"], "options": [ { "name": "shade", "id": "66488", "values": [{"value": "1 Fair Neutral", "orderable": true}] } ], "variants": [ { "id": "276343", "sku": "770225", "price": { "current": 77.0, "original": 77.0, "stockStatus": "IN_STOCK" }, "options": [{"name": "shade", "value": "1 Fair Neutral"}], "highlights": ["NEW", "Only at Sephora"], "wishlisted": null } ], "medias": [{ "url": "https://www.sephora.nz/.../foundation-shade.jpg", "type": "image" }], "stats": { "reviewCount": 971, "rating": 4.8, "lovesCount": null } } ``` ## 팁 - **프록시 국가를 타겟 마켓에 고정하세요.** 국가가 일치하지 않는 레지덴셜 출구 IP는 Sephora의 Akamai 레이어에서 403이 발생하는 가장 큰 원인입니다. `apifyProxyCountry`를 스토어의 ISO 코드(`US`, `FR`, `NZ` 등)로 설정하세요. - **먼저 스모크 테스트를 하세요.** 새로운 마켓에서 첫 프로덕션 실행을 하기 전에 `maxRequestsPerCrawl=10`으로 설정해보세요. - **지역별로 동시성을 조정하세요.** 미국: 2-5. EU: 3. SEA: 8-16. 혼합 실행에서는 각 마켓이 자체 세마포어를 가집니다. --- # Boohoo Scraper — 7개 지역의 상품 데이터 - **URL:** https://proooxy.com/ko/tools/boohoo-scraper/ - **유형:** tools - **설명:** 자동 페이지네이션, 패싯 필터링, 다중 통화를 지원하며 Boohoo 이커머스 사이트 7개 지역의 상품 데이터를 추출합니다. - **요약:** Boohoo의 7개 지역 스토어 상품 데이터를 크롤링합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Cheerio, Fingerprint Generator - **마켓/지역:** 네덜란드, 스웨덴, 영국, 아일랜드, 프랑스, 호주, 미국 - **안티봇 전략:** 안티봇 우회를 위한 핑거프린트 생성 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/boohoo-scraper - **키워드:** boohoo 크롤링, boohoo 상품 데이터, boohoo 가격 모니터링, 패스트패션 스크래퍼, 패션 카탈로그 데이터, 다국가 패션 데이터 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 7개 지역 스토어 지원 — 네덜란드(EUR), 스웨덴(SEK), 영국(GBP), 아일랜드(EUR), 프랑스(EUR), 호주(AUD), 미국(USD) - 자동 페이지네이션을 지원하는 카테고리 및 검색 크롤링 - 패싯 필터 지원 — 사이즈, 색상, 가격대, 스타일 - 상품 변형과 재고 상태를 포함한 전체 상품 상세 정보 - 안티봇 우회를 위한 브라우저 핑거프린트 생성 - 지역 스토어에 따른 다중 통화 가격 **활용 사례:** - 패스트패션 경쟁사 가격 분석 - 동일 상품에 대한 다국가 가격 비교 - 합리적 가격대 패션 트렌드 모니터링 - 지역별 재고 현황 추적 - 유럽 및 글로벌 시장을 아우르는 패션 시장 조사 **입력 파라미터:** - `startUrls` (array, 필수) — Boohoo 상품 또는 카테고리 URL - `maxRequestsPerCrawl` (number, 선택) — 요청 제한(기본값: 5) - `maxConcurrency` (number, 선택) — 동시 요청 수(기본값: 5) - `proxy` (object, 선택) — 프록시 설정 **자주 묻는 질문:** **Q: 어떤 지역의 Boohoo 스토어를 지원하나요?** 네덜란드(EUR), 스웨덴(SEK), 영국(GBP), 아일랜드(EUR), 프랑스(EUR), 호주(AUD), 미국(USD)을 지원합니다. **Q: 사이즈나 색상으로 상품을 필터링할 수 있나요?** 네, 스크래퍼는 패싯 필터링을 지원합니다. 필터가 적용된 카테고리 URL을 제공하면 스크래퍼가 해당 필터를 그대로 반영합니다. **Q: 스크래퍼는 페이지네이션을 어떻게 처리하나요?** 페이지네이션은 자동으로 처리됩니다. 카테고리나 검색 URL을 제공하면 모든 페이지네이션 링크를 따라가며 전체 상품을 추출합니다. ## 출력 예시 ```json { "source": "https://www.boohoo.com/...", "brand": "boohoo", "title": "Oversized Hoodie", "description": "Stay cozy in this oversized hoodie...", "categories": ["Women", "Hoodies & Sweatshirts"], "price": { "current": 1500, "original": 3000, "currency": "GBP" }, "variants": [ { "sku": "BH-OH-BLK-S", "size": "S", "color": "Black", "inStock": true } ], "medias": [ { "type": "image", "url": "https://..." } ] } ``` --- # Farfetch Scraper — 럭셔리 패션 상품 데이터 - **URL:** https://proooxy.com/ko/tools/farfetch-scraper/ - **유형:** tools - **설명:** 다중 통화 가격, 사이즈/핏 변형, 상품 추천까지 포함한 Farfetch의 럭셔리 패션 상품 데이터를 추출합니다. - **요약:** 다중 통화를 지원하는 Farfetch의 럭셔리 패션 상품을 크롤링합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Cheerio, Crawlee - **마켓/지역:** 글로벌 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/farfetch - **키워드:** farfetch 크롤링, farfetch 상품 데이터, 럭셔리 패션 데이터, 명품 패션 스크래퍼, farfetch 가격 모니터링, 럭셔리 리테일 데이터 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 카테고리 및 상품 상세 페이지 크롤링 - 다중 통화 가격 — 프록시 위치를 기반으로 자동 감지 - 선택적 사이즈/핏 변형 추출 - 상품당 최대 90개의 추천 상품 - 전체 미디어 갤러리 및 상세 설명 - 브랜드, 카테고리, 추가 정보 추출 **활용 사례:** - 럭셔리 패션 시장 인텔리전스 - 디자이너 브랜드의 플랫폼 간 가격 비교 - 패션 트렌드 분석 및 상품 발굴 - 멀티브랜드 리테일러를 위한 경쟁사 가격 분석 - 상품 추천 엔진 학습 데이터 **입력 파라미터:** - `startUrls` (array, 필수) — Farfetch 상품 또는 카테고리 URL - `proxy` (object, 선택) — 프록시 설정 — 위치에 따라 통화가 달라짐 - `maxRequestsPerCrawl` (number, 선택) — 요청 제한(기본값: 100) - `maxConcurrency` (number, 선택) — 동시 요청 수(기본값: 5) - `withSizeFit` (boolean, 선택) — 사이즈/핏 데이터 포함(기본값: false) - `withRecommends` (boolean, 선택) — 추천 상품 포함(기본값: false) **자주 묻는 질문:** **Q: 다중 통화 가격은 어떻게 동작하나요?** Farfetch는 위치를 기반으로 가격을 표시합니다. 스크래퍼는 프록시 위치를 사용해 반환할 통화를 결정합니다. USD를 원하면 미국 프록시, GBP를 원하면 영국 프록시를 사용하세요. **Q: 추천 상품은 몇 개까지 추출할 수 있나요?** withRecommends를 활성화하면 상품당 최대 90개의 추천 상품을 추출할 수 있습니다. 상품 그래프나 추천 데이터셋을 구축할 때 유용합니다. ## 출력 예시 ```json { "source": "https://www.farfetch.com/shopping/...", "brand": "Gucci", "title": "GG Marmont Matelasse Shoulder Bag", "description": "Crafted from matelasse leather...", "details": ["Made in Italy", "100% Calf Leather"], "categories": ["Women", "Bags", "Shoulder Bags"], "options": [ { "name": "Size", "values": ["One Size"] } ], "variants": [ { "sku": "FF-GU-001", "price": 229000, "currency": "USD", "inStock": true } ], "medias": [ { "type": "image", "url": "https://..." } ] } ``` --- # Global API Load Tester — 10K+ RPS 스트레스 테스트 - **URL:** https://proooxy.com/ko/tools/load-tester/ - **유형:** tools - **설명:** 지역 분산 트래픽, 가중치 기반 타겟, 인터랙티브 HTML 리포트로 초당 10,000건 이상의 요청을 시뮬레이션하는 고성능 부하 테스트 도구입니다. - **요약:** 지역 분산 부하 테스트로 10K+ RPS를 시뮬레이션합니다. - **카테고리:** utility - **기술 스택:** Go, Vegeta - **마켓/지역:** 글로벌 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/global-api-load-tester - **키워드:** api 부하 테스트 툴, http 부하 테스트, 스트레스 테스트 툴, 성능 테스트 도구, 10k rps 부하 테스트, 지역 분산 부하 테스트, vegeta 부하 테스트 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 극한의 성능 — 초당 10,000건 이상의 요청 - 미국, 유럽, 아시아에서의 지역 분산 테스트 - 가중치 기반 멀티 타겟 공격(예: 읽기 90% / 쓰기 10%) - 현실적인 트래픽을 위한 레지덴셜 프록시 지원 - Coordinated Omission을 방지하는 일정 속도 페이싱 - Vegeta Plots를 통한 인터랙티브 HTML 리포트 - 상세한 지연시간, 처리량, 에러 지표 **활용 사례:** - 출시 전 API 성능 벤치마킹 - 용량 계획 및 인프라 사이징 - 한계점 및 병목 지점 파악 - CDN 및 로드 밸런서 설정 테스트 - 지역 분산 지연시간 테스트 - 성능이 중요한 엔드포인트에 대한 회귀 테스트 **입력 파라미터:** - `targets` (array, 필수) — URL, 메서드, 바디, 헤더, 가중치를 포함한 타겟 엔드포인트 - `rate` (number, 선택) — 초당 요청 수(기본값: 50) - `duration` (number, 선택) — 테스트 지속 시간(초, 기본값: 60) - `geoDistribution` (array, 선택) — 국가 코드와 트래픽 가중치를 포함한 지역 설정 - `useStickySessions` (boolean, 선택) — 세션 어피니티 유지(기본값: true) - `maxCostLimit` (number, 선택) — 테스트 실행의 비용 상한 **자주 묻는 질문:** **Q: 지역 분산 테스트는 어떻게 동작하나요?** 국가 코드와 트래픽 가중치를 지정하면, 도구가 해당 지역의 Apify 프록시 서버 전체에 요청을 분산시켜 현실적인 글로벌 트래픽 패턴을 시뮬레이션합니다. **Q: Coordinated Omission이 무엇인가요?** 타겟이 과부하 상태일 때 테스트 도구 자체가 느려지면서 실제보다 결과가 더 좋아 보이게 만드는, 부하 테스트에서 흔히 발생하는 함정입니다. Vegeta는 이를 방지하기 위해 일정 속도 페이싱을 사용합니다. **Q: 인증이 필요한 엔드포인트도 테스트할 수 있나요?** 네, 타겟 설정에 authorization 헤더를 포함하면 됩니다. 각 타겟은 자체 헤더, 메서드, 바디를 가질 수 있습니다. ## 출력 예시 부하 테스트 도구는 인터랙티브 HTML 리포트와 구조화된 지표를 생성합니다: ```json { "summary": { "totalRequests": 50000, "duration": "60s", "rps": 833.33, "successRate": 99.8, "latency": { "mean": "12.4ms", "p50": "10.1ms", "p95": "28.7ms", "p99": "89.2ms", "max": "342.1ms" }, "statusCodes": { "200": 49900, "503": 100 } } } ``` --- # Lululemon Scraper — 상품, 상품 변형 및 가격 - **URL:** https://proooxy.com/ko/tools/lululemon-scraper/ - **유형:** tools - **설명:** Lululemon의 상품 상세 정보를 크롤링해 상품 변형 데이터, 색상 옵션, 미디어 갤러리, 가격 정보까지 추출합니다. - **요약:** Lululemon의 상품 변형과 미디어를 포함한 상품 데이터를 추출합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Crawlee - **마켓/지역:** 미국 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/lululemon-scraper - **키워드:** lululemon 크롤링, lululemon 상품 데이터, lululemon 가격 추적, 애슬레저 상품 데이터, 애슬레저 가격 데이터, lululemon 재고 스크래퍼 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 카테고리 및 상품 페이지 크롤링 - 색상 및 사이즈 옵션별 상품 변형 추출 - 색상별 이미지가 포함된 전체 미디어 갤러리 - 구조화된 출력으로 가격 추적 - 카테고리 계층 구조 추출 - Crawlee 프레임워크 기반의 가볍고 빠른 동작 **활용 사례:** - 애슬레틱웨어 시장 조사 및 경쟁사 분석 - 리셀러 및 가격 비교 플랫폼을 위한 가격 모니터링 - 피트니스 이커머스를 위한 상품 카탈로그 통합 - 색상 및 사이즈 재고 현황 추적 - 애슬레저 패션 트렌드 분석 **입력 파라미터:** - `startUrls` (array, 필수) — Lululemon 상품 또는 카테고리 URL - `proxy` (object, 선택) — 프록시 설정 - `maxConcurrency` (number, 선택) — 동시 요청 제한 **자주 묻는 질문:** **Q: 스크래퍼가 색상별 상품 변형을 처리하나요?** 네, 각 색상 변형은 고유한 이미지, SKU, 재고 상태와 함께 추출됩니다. 미디어 갤러리도 색상별로 구분됩니다. **Q: Lululemon 카테고리 전체를 크롤링할 수 있나요?** 네, 카테고리 URL을 제공하면 스크래퍼가 해당 카테고리 내 모든 상품을 크롤링합니다. ## 출력 예시 ```json { "source": "https://shop.lululemon.com/p/...", "brand": "lululemon", "title": "Align High-Rise Pant 25\"", "description": "Buttery-soft, weightless Nulu fabric...", "categories": ["Women", "Pants", "Yoga Pants"], "options": [ { "name": "Color", "values": ["Black", "True Navy", "Dark Olive"] }, { "name": "Size", "values": ["2", "4", "6", "8", "10", "12"] } ], "variants": [ { "sku": "LL-AHR-BLK-6", "name": "Black / 6", "price": 9800, "currency": "USD", "inStock": true } ], "medias": [ { "type": "image", "url": "https://...", "color": "Black" } ], "stats": { "rating": 4.7, "reviewCount": 15234 } } ``` --- # Schema Markup Scraper & SEO 감사 도구 - **URL:** https://proooxy.com/ko/tools/schema-markup-scraper/ - **유형:** tools - **설명:** 종합 SEO 감사 스코어링 시스템과 함께 모든 URL에서 JSON-LD, Microdata, RDFa, Open Graph, Twitter Cards를 추출합니다. - **요약:** 모든 웹사이트의 구조화된 데이터를 추출하고 SEO를 감사합니다. - **카테고리:** utility - **기술 스택:** TypeScript, Crawlee - **마켓/지역:** 글로벌 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/metadata-scraper - **키워드:** schema markup 검사, 구조화 데이터 추출기, json-ld 추출기, seo 감사 도구, open graph 검사기, microdata 스크래퍼, rich results 테스트 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 구조화된 데이터 추출 — JSON-LD, Microdata, RDFa - 소셜 메타 태그 — Open Graph, Twitter Cards, Dublin Core - 0~100점 스코어링을 포함한 SEO 분석 - 캐노니컬 URL 및 hreflang 검증 - EEAT 신호를 위한 작성자 정보 추출 - 80개 이상의 하위 유형을 포함한 LocalBusiness 감지 - 이미지 alt 텍스트 감사 - Breadcrumb 스키마 검증 - geo 태그 및 NAP 추출 **활용 사례:** - 대규모 테크니컬 SEO 감사 - 웹사이트 구조화 데이터 검증 - 경쟁사 SEO 분석 — 경쟁사 간 schema markup 비교 - 콘텐츠 사이트를 위한 EEAT 신호 평가 - 비즈니스를 위한 로컬 SEO 감사 - 출시 전 SEO 체크리스트 검증 **입력 파라미터:** - `startUrls` (array, 필수) — 분석할 URL - `proxy` (object, 선택) — 프록시 설정 - `maxRequestsPerCrawl` (number, 선택) — 감사할 전체 URL 수 제한 - `maxConcurrency` (number, 선택) — 동시 요청 수 - `extractMetaTags` (boolean, 선택) — 메타 태그 추출(기본값: true) - `extractSeoAnalysis` (boolean, 선택) — SEO 분석 실행(기본값: true) - `computeSeoScore` (boolean, 선택) — 0~100점 SEO 점수 계산(기본값: true) - `extractGeoData` (boolean, 선택) — geo 태그 및 NAP 데이터 추출 **자주 묻는 질문:** **Q: 어떤 구조화 데이터 형식을 지원하나요?** JSON-LD, Microdata, RDFa를 지원합니다. Open Graph, Twitter Cards, Dublin Core 메타데이터도 함께 추출합니다. **Q: SEO 점수는 어떻게 계산되나요?** 0~100점 점수는 title 태그, 메타 디스크립션, 헤딩 계층 구조, 이미지 alt 텍스트, 캐노니컬 URL, 모바일 뷰포트, 구조화 데이터 존재 여부 등을 평가합니다. **Q: 여러 페이지를 한 번에 감사할 수 있나요?** 네, startUrls에 여러 URL을 제공하면 됩니다. 스크래퍼가 이를 병렬로 처리해 빠르게 대량 감사를 수행합니다. ## 출력 예시 ```json { "url": "https://example.com/product/...", "title": "Example Product Page", "linkedData": [ { "@type": "Product", "name": "..." } ], "openGraph": { "og:title": "Example Product", "og:type": "product" }, "twitterCard": { "card": "summary_large_image" }, "seoAudit": { "score": 78, "issues": [ "Missing alt text on 3 images", "No hreflang tags detected" ] }, "headings": { "h1": ["Example Product"], "h2": ["Description", "Reviews"] } } ``` --- # Sephora EU Scraper — 유럽 9개국 마켓 - **URL:** https://proooxy.com/ko/tools/sephora-eu-scraper/ - **유형:** tools - **설명:** 다중 변형 추출, Akamai WAF 우회, 스마트 토큰 관리로 Sephora Europe 9개 EU 마켓의 전체 상품 데이터를 크롤링합니다. - **요약:** Sephora의 유럽 9개국 마켓 상품 데이터를 추출합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Crawlee, Akamai Bypass - **마켓/지역:** 프랑스, 이탈리아, 독일, 스페인, 폴란드, 체코, 그리스, 루마니아, 포르투갈 - **안티봇 전략:** Akamai WAF — 브라우저급 TLS 핑거프린팅 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/sephora-eu-scraper - **키워드:** sephora europe 크롤링, sephora eu 상품 데이터, 유럽 뷰티 데이터, sephora france 스크래퍼, sephora germany 스크래퍼, 유럽 화장품 데이터, akamai waf 우회 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 9개 EU 마켓 지원 — 프랑스, 이탈리아, 독일, 스페인, 폴란드, 체코, 그리스, 루마니아, 포르투갈 - 개별 가격 및 재고 상태를 포함한 다중 변형 추출 - 상품별 고해상도 이미지 갤러리 - 카테고리 ID를 통한 대량 추출용 카테고리 탐색 - Akamai WAF를 우회하는 브라우저급 TLS 핑거프린팅 - 자동 갱신 및 지수 백오프를 포함한 게스트 토큰 관리 **활용 사례:** - 범유럽 뷰티 시장 가격 비교 - 마켓 간 상품 재고 현황 모니터링 - 뷰티 브랜드의 EU 시장 진출 조사 - 유럽 시장 전반의 경쟁 인텔리전스 - 지역별 가격 전략 분석 **입력 파라미터:** - `startUrls` (array, 선택) — 크롤링할 Sephora EU 상품 URL - `categoryIds` (array, 선택) — 대량 상품 추출용 카테고리 ID - `locale` (string, 선택) — 타겟 마켓 로케일(예: fr-FR, it-IT) - `maxProducts` (number, 선택) — 추출할 최대 상품 수 - `maxConcurrency` (number, 선택) — 동시 요청 제한 - `proxyConfiguration` (object, 선택) — 프록시 설정 — 레지덴셜 권장 **자주 묻는 질문:** **Q: 유럽의 어떤 Sephora 마켓을 지원하나요?** 프랑스(fr-FR), 이탈리아(it-IT), 독일(de-DE), 스페인(es-ES), 폴란드(pl-PL), 체코(cs-CZ), 그리스(el-GR), 루마니아(ro-RO), 포르투갈(pt-PT)을 지원합니다. **Q: 스크래퍼는 Akamai WAF를 어떻게 우회하나요?** 브라우저급 TLS 핑거프린팅으로 실제 브라우저 연결을 모방해, 요청을 실제 사용자 트래픽과 구분할 수 없게 만듭니다. **Q: 카테고리 전체를 크롤링할 수 있나요?** 네, 카테고리 ID를 제공하면 해당 카테고리 내 모든 상품을 추출할 수 있습니다. 대량 추출을 위한 가장 효율적인 방법입니다. ## 출력 예시 ```json { "source": "https://www.sephora.fr/p/...", "brand": "Rare Beauty", "title": "Soft Pinch Liquid Blush", "description": "Un blush liquide longue tenue...", "shortDescription": "Blush liquide", "categories": ["Maquillage", "Teint", "Blush"], "options": [ { "name": "Shade", "values": ["Joy", "Hope", "Grace"] } ], "variants": [ { "sku": "EU-RB-001", "name": "Joy", "price": 2800, "currency": "EUR", "inStock": true } ], "medias": [ { "type": "image", "url": "https://..." } ], "stats": { "rating": 4.7, "reviewCount": 3421 } } ``` --- # Shopify Scraper — 모든 스토어의 상품 데이터 - **URL:** https://proooxy.com/ko/tools/shopify-scraper/ - **유형:** tools - **설명:** 컬렉션, 검색, 상품 추천까지 포함해 Shopify 기반 스토어라면 어디서든 고정밀 상품 데이터를 추출하는 프로페셔널급 도구입니다. - **요약:** 모든 Shopify 스토어의 상품 데이터를 추출합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, got-scraping - **마켓/지역:** 글로벌 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/shopify-scraper-ppe - **키워드:** shopify 크롤링, shopify 상품 스크래퍼, shopify 스토어 크롤링, shopify 상품 데이터, shopify api 대안, 이커머스 데이터 추출, shopify 상품 내보내기, shopify 컬렉션 스크래퍼 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 범용 — Shopify 기반이라면 어떤 스토어에도 동작 - 스토어 전체 카탈로그 추출 및 검색 지원 - 상품 추천(상품당 최대 20개) - 컬렉션 및 개별 상품 크롤링 - 태그 및 카테고리 추출 - 정밀도를 위한 통화 정규화(가격 x100) **활용 사례:** - 모든 틈새시장의 Shopify 스토어를 대상으로 한 시장 조사 - DTC 브랜드를 위한 경쟁사 분석 - 비교 플랫폼을 위한 상품 카탈로그 통합 - 독립 이커머스 스토어 전반의 트렌드 모니터링 - 상품 추천 데이터셋 구축 - 리셀러를 위한 가격 모니터링 **입력 파라미터:** - `startUrls` (array, 필수) — Shopify 스토어 URL — 상품, 컬렉션, 또는 스토어 홈 - `proxy` (object, 선택) — 최상의 결과를 위해 레지덴셜 프록시 권장 - `maxRequestsPerCrawl` (number, 선택) — 요청 제한(기본값: 100) - `maxRecommendationsPerProduct` (number, 선택) — 가져올 추천 상품 수(기본값: 0, 최대: 20) - `query` (string, 선택) — 스토어 내 상품을 찾기 위한 검색어 **자주 묻는 질문:** **Q: 이 스크래퍼는 아무 Shopify 스토어에나 동작하나요?** 네, Shopify 기반이라면 어떤 스토어에도 동작합니다. 모든 스토어에서 일관된 Shopify의 표준 상품 데이터 구조를 활용합니다. **Q: 특정 상품을 검색할 수 있나요?** 네, query 파라미터를 사용해 특정 스토어 내에서 검색할 수 있습니다. 전체 카탈로그를 크롤링하지 않고 특정 상품 유형을 찾을 때 유용합니다. **Q: 상품 추천은 어떻게 추출되나요?** maxRecommendationsPerProduct를 설정하면 관련 상품을 가져옵니다. 상품당 최대 20개의 추천을 이용할 수 있으며, 상품 그래프를 구축할 때 유용합니다. ## 출력 예시 ```json { "source": "https://store.example.com/products/...", "brand": "Example Brand", "title": "Premium Organic Cotton T-Shirt", "description": "Made from 100% organic cotton...", "categories": ["Tops", "T-Shirts"], "tags": ["organic", "sustainable", "cotton"], "options": [ { "name": "Size", "values": ["S", "M", "L", "XL"] }, { "name": "Color", "values": ["White", "Black", "Navy"] } ], "variants": [ { "sku": "SHOP-OCT-WHT-M", "name": "White / M", "price": 4500, "currency": "USD", "inStock": true } ], "medias": [ { "type": "image", "url": "https://..." } ] } ``` --- # Ulta Beauty Scraper — 상품, 가격 및 SKU - **URL:** https://proooxy.com/ko/tools/ulta-scraper/ - **유형:** tools - **설명:** 카테고리 페이지, 브랜드 페이지, 세일 섹션까지 포함해 Ulta Beauty의 상품 상세정보, 가격, 이미지, SKU 정보를 추출합니다. - **요약:** Ulta Beauty의 전체 상품 데이터를 크롤링합니다. - **카테고리:** ecommerce - **기술 스택:** TypeScript, Cheerio, Crawlee - **마켓/지역:** 미국 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/ulta-scraper - **키워드:** ulta 크롤링, ulta beauty 스크래퍼, ulta 상품 데이터, ulta 가격 추적, ulta sku 스크래퍼, ulta 세일 모니터링, 뷰티 리테일 데이터 - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 카테고리, 상품 상세, 브랜드, 세일 페이지 지원 - 가격, 설명, 이미지를 포함한 전체 상품 상세정보 - 상품 변형 그룹화를 포함한 SKU 단위 데이터 추출 - URL로부터 페이지 유형 자동 감지 - 속도를 위한 경량 Cheerio 기반 파싱 - 관련 SKU를 동일 상품 아래로 그룹화 **활용 사례:** - 뷰티 업계 경쟁사 분석 — Ulta 대 Sephora 가격 비교 - 가격 비교 쇼핑 플랫폼을 위한 상품 카탈로그 구축 - 세일 및 프로모션 모니터링 - 브랜드 발굴 및 시장 입지 추적 - SKU 단위 재고 모니터링 **입력 파라미터:** - `startUrls` (array, 필수) — Ulta 상품, 카테고리, 브랜드, 또는 세일 URL - `proxy` (object, 선택) — 프록시 설정 - `maxConcurrency` (number, 선택) — 최대 동시 요청 수 - `maxRequestsPerCrawl` (number, 선택) — 실행당 전체 요청 수 제한 **자주 묻는 질문:** **Q: 어떤 유형의 Ulta 페이지를 크롤링할 수 있나요?** 스크래퍼는 상품 상세 페이지, 카테고리 리스팅 페이지, 브랜드 페이지, 세일/프로모션 페이지를 지원합니다. URL로부터 페이지 유형을 자동으로 감지합니다. **Q: 상품 변형은 어떻게 처리되나요?** 변형(다른 색조, 사이즈)은 동일한 상위 상품 아래로 그룹화됩니다. 각 변형은 고유한 SKU, 가격, 재고 상태를 포함합니다. ## 출력 예시 ```json { "source": "https://www.ulta.com/p/...", "brand": "NYX Professional Makeup", "title": "Butter Gloss", "description": "A buttery soft and silky lip gloss...", "categories": ["Makeup", "Lips", "Lip Gloss"], "variants": [ { "sku": "ULTA-NYX-BG-001", "name": "Angel Food Cake", "price": 900, "currency": "USD", "inStock": true } ], "stats": { "rating": 4.5, "reviewCount": 8932 } } ``` --- # Universal Web Printer — URL·HTML을 PDF, 이미지로 변환 - **URL:** https://proooxy.com/ko/tools/web-printer/ - **유형:** tools - **설명:** 스마트 스크롤 스티칭, 요소 추출, PDF 암호화, 워터마킹까지 지원하며 모든 URL이나 HTML을 PDF, PNG, JPEG, WebP로 변환합니다. - **요약:** URL과 HTML을 PDF, PNG, JPEG, WebP로 변환합니다. - **카테고리:** utility - **기술 스택:** TypeScript, Playwright, PDF-lib, Sharp - **마켓/지역:** 글로벌 - **보고된 성공률:** >99% - **Apify 등록 페이지:** https://apify.com/autofacts/universal-web-printer - **키워드:** html to pdf api, url pdf 변환기, 웹사이트 스크린샷 api, 웹페이지 pdf 변환, url 이미지 변환, 웹페이지 png 변환, pdf 생성 api - **게시일:** 2026-04-04 - **수정일:** 2026-04-04 **주요 기능:** - 다중 포맷 출력 — PDF, PNG, JPEG, WebP - 다양한 뷰 모드 — 뷰포트, 전체 페이지, CSS 셀렉터, 리더빌리티 - 정확한 전체 페이지 캡처를 위한 스마트 스크롤 스티칭 - CSS 셀렉터를 통한 요소 단위 추출 - 페이지 조작 — 요소 제거, 버튼 클릭, CSS 주입, 고정 헤더 숨기기 - PDF 암호화(RC4 128비트) 및 워터마킹 - 다중 페이지 문서를 위한 PDF 병합 - 커스텀 뷰포트 및 스케일 비율 설정 **활용 사례:** - 웹 대시보드로부터 자동 리포트 생성 - 웹사이트 아카이빙 및 문서화 - 비주얼 회귀 테스트 스냅샷 - 카탈로그용 이커머스 상품 페이지 스크린샷 - 법적 컴플라이언스 — 웹 콘텐츠를 증거로 캡처 - 웹 애플리케이션으로부터 PDF 생성 **입력 파라미터:** - `startUrls` (array, 선택) — 렌더링할 URL - `htmlContent` (string, 선택) — 렌더링할 원본 HTML - `outputFormat` (string, 선택) — pdf, png, jpeg, webp 중 선택(기본값: pdf) - `viewMode` (string, 선택) — viewport, fullPage, selector, readability 중 선택 - `targetSelector` (string, 선택) — 요소 단위 캡처를 위한 CSS 셀렉터 - `viewportWidth` (number, 선택) — 브라우저 뷰포트 너비(기본값: 1280) - `viewportHeight` (number, 선택) — 브라우저 뷰포트 높이(기본값: 720) - `removeSelectors` (array, 선택) — 캡처 전 제거할 요소의 CSS 셀렉터 - `pdfPassword` (string, 선택) — RC4 128비트 암호화로 PDF 보호 **자주 묻는 질문:** **Q: 페이지의 특정 요소만 캡처할 수 있나요?** 네, targetSelector 파라미터에 CSS 셀렉터를 지정하면 특정 요소만 캡처할 수 있습니다. 예를 들어 '#main-content'를 사용하면 메인 콘텐츠 영역만 캡처됩니다. **Q: 스마트 스크롤 스티칭은 어떻게 동작하나요?** 전체 페이지 캡처 시, 도구가 페이지를 일정 간격으로 스크롤하면서 각 뷰포트 조각을 캡처한 뒤 이어붙입니다. 이를 통해 지연 로딩되는 콘텐츠와 애니메이션도 제대로 캡처됩니다. **Q: 캡처 전에 쿠키 배너나 광고를 제거할 수 있나요?** 네, removeSelectors로 제거할 요소의 CSS 셀렉터를 지정할 수 있습니다. hideFixedElements를 사용하면 고정 헤더와 플로팅 요소도 숨길 수 있습니다. ## 출력 예시 도구는 선택한 포맷(PDF, PNG, JPEG, WebP)으로 파일을 생성해 Apify 데이터셋에 저장합니다. 각 출력에는 메타데이터가 포함됩니다: ```json { "url": "https://example.com", "format": "pdf", "fileName": "example-com.pdf", "fileSize": 245832, "viewMode": "fullPage", "viewport": { "width": 1280, "height": 720 }, "encrypted": false } ``` --- # 2026년 웹 크롤링 모범 사례: 실무자 가이드 - **URL:** https://proooxy.com/ko/blog/web-scraping-best-practices-2026/ - **유형:** blog - **설명:** 12년 이상의 프로덕션 경험에서 검증된 웹 크롤링 전략 — 아키텍처 패턴, 에러 처리, 프록시 관리, 출력 정규화까지 다룹니다. - **키워드:** 웹 크롤링 모범 사례, 프로덕션 크롤링 아키텍처, 데이터 추출 가이드, 스크래퍼 설계 패턴, 크롤러 에러 처리, 프록시 관리 전략 - **게시일:** 2026-04-01 - **수정일:** 2026-04-01 3,100명 이상의 사용자에게 >99%의 성공률로 서비스를 제공하는 15개의 프로덕션 스크래퍼를 만들고 유지보수해온 경험에서, 실제로 중요한 원칙들을 정리했습니다. ## 아키텍처: 스크립트가 아니라 파이프라인으로 생각하라 가장 흔히 보는 실수는 크롤링을 단일 단계 프로세스로 취급하는 것입니다. 프로덕션 스크래퍼는 데이터 파이프라인입니다: 1. **URL 발견** — 무엇을 크롤링할지 찾기(사이트맵, 카테고리 페이지, 검색, API) 2. **요청 실행** — 적절한 재시도와 로테이션으로 데이터 가져오기 3. **파싱** — 원시 응답에서 구조화된 필드 추출 4. **정규화** — 출력을 정제, 검증, 표준화 5. **저장** — 데이터셋, 데이터베이스, 또는 후속 시스템으로 전달 각 단계는 독립적으로 테스트 및 재시도가 가능해야 합니다. Sephora가 상품 페이지 레이아웃을 변경해도 3단계만 업데이트하면 되고, 나머지 파이프라인은 안정적으로 유지됩니다. ## HTML 파싱보다 항상 API를 우선하라 CSS 셀렉터를 단 하나라도 작성하기 전에, 사이트에 다음이 있는지 먼저 확인하세요: - **퍼블릭 API** — JSON을 반환하는 문서화된 엔드포인트 - **비공개 API** — 브라우저 DevTools에서 보이는 XHR/fetch 호출 - **GraphQL 엔드포인트** — 점점 흔해지고 있으며, introspection이 활성화된 경우가 많음 - **임베디드 JSON** — HTML 내 `__NEXT_DATA__`, `window.__INITIAL_STATE__`, 또는 JSON-LD API 응답은 구조화되어 있고, 버전이 관리되며, HTML 레이아웃보다 훨씬 안정적입니다. 제 [Sephora 스크래퍼](/ko/tools/sephora-scraper/)는 모든 웹 URL을 API 호출로 변환하며, 프런트엔드 리디자인으로 인해 깨진 적이 단 한 번도 없습니다. ## 프록시 전략: 방어 수준에 맞춰라 모든 사이트에 레지덴셜 프록시가 필요한 것은 아닙니다. 제 의사결정 프레임워크는 다음과 같습니다: | 방어 수준 | 프록시 유형 | 예시 사이트 | |-----------------|------------|---------------| | 없음 / 기본 | 데이터센터 | 대부분의 Shopify 스토어, 소규모 사이트 | | 레이트 리밋 | 로테이팅 데이터센터 | 중견 이커머스, 콘텐츠 사이트 | | 핑거프린팅 | 레지덴셜 | Sephora, Farfetch 등 주요 브랜드 | | 고급 WAF | 레지덴셜 + TLS 핑거프린트 | Akamai, Cloudflare Enterprise | 핵심은 이것입니다: **프록시 비용은 방어 수준에 비례해 증가합니다**. IP 평판만 확인하는 사이트에 레지덴셜 프록시를 쓰는 것은 돈 낭비입니다. 제 [Shopify 스크래퍼](/ko/tools/shopify-scraper/)는 데이터센터 프록시만으로도 문제없이 동작하는데, Shopify의 기본 방어 수준이 낮기 때문입니다. ## 세션 관리가 전부다 60%와 99% 성공률의 차이는 대개 세션 관리에서 갈립니다: - **IP뿐 아니라 세션도 로테이션하라** — 같은 쿠키에 새 IP만 쓰면 의심스러워 보입니다 - **세션을 워밍업하라** — 상품 페이지에 접근하기 전에 홈페이지부터 방문하세요 - **레이트 리밋을 준수하라** — 차단당하는 50개보다 성공하는 5개의 동시 요청이 낫습니다 - **지수 백오프** — 즉시 재시도가 아니라 1초, 2초, 4초, 8초 간격으로 재시도 제 [Sephora EU 스크래퍼](/ko/tools/sephora-eu-scraper/)는 자동 갱신과 지수 백오프로 게스트 토큰을 관리합니다. 실제 브라우징 패턴처럼 보이는 지속적인 세션을 유지합니다. ## 출력을 정규화하라 크롤링으로 얻은 원시 데이터는 지저분합니다. 모든 것을 정규화하세요: ### 가격 정수(달러가 아닌 센트 단위)로 저장하세요. `$29.99`는 `2999`가 됩니다. 이렇게 하면 다운스트림에서 금융 데이터를 훼손하는 부동소수점 정밀도 오류를 방지할 수 있습니다. 제 이커머스 스크래퍼는 모두 이 규칙을 따릅니다. ### URL 항상 절대 URL로 저장하고, 상대 경로는 사용하지 마세요. 추출 시점에 경로를 해석하세요. ### 날짜 ISO 8601(`2026-04-01T00:00:00Z`) 형식을 항상 타임존과 함께 사용하세요. 로케일별로 포맷된 날짜는 저장하지 마세요. ### 텍스트 불필요한 공백을 제거하고, 유니코드를 정규화하고, HTML 처리 정책(태그 제거 vs. 포맷 유지)을 정해두세요. ## 에러 처리: 실패를 예상하라 프로덕션 스크래퍼는 끊임없이 실패합니다 — 관건은 얼마나 우아하게 실패하느냐입니다. 제 접근법은 다음과 같습니다: ``` Request fails (network error, timeout, 4xx/5xx) → Retry with exponential backoff (up to 5 attempts) → Rotate session/proxy on retry → Log failure with full context if all retries exhausted → Continue processing remaining URLs (don't crash the batch) ``` URL 패턴별로 성공률을 추적하세요. `/category/*` 페이지의 성공률이 갑자기 90% 아래로 떨어지면 사이트에 변화가 생겼을 가능성이 높습니다 — 사용자가 신고하기 전에 먼저 알아챌 수 있습니다. ## 모니터링과 알림 모니터링이 없는 스크래퍼는 조용히 실패할 날만 기다리는 스크래퍼입니다. 다음을 추적하세요: - 실행별, URL 패턴별 **성공률** - **출력 건수** — 갑작스러운 감소는 무언가 깨졌다는 신호입니다 - **데이터 품질** — null 필드, 예상치 못한 값, 스키마 위반 - **비용** — 프록시 사용량, 컴퓨팅 시간, 스토리지 제 Apify 액터는 모두 이 지표들을 노출합니다. 성공률이 떨어지면 몇 시간 안에 알림을 받으며, 대개 사용자가 알아채기 전에 먼저 파악합니다. ## 단순하게 시작해서 복잡도를 더하라 제가 만드는 모든 스크래퍼는 동작하는 가장 단순한 형태로 시작합니다: 1. 먼저 **HTTP + Cheerio**(가장 빠르고 저렴함) 2. 차단당할 때만 **핑거프린팅 추가** 3. JavaScript가 필요할 때만 **브라우저 렌더링 추가** 4. 레이트 리밋에 걸릴 때만 **프록시 로테이션 추가** 제 [Ulta 스크래퍼](/ko/tools/ulta-scraper/)는 순수 Cheerio만 사용하며 브라우저가 필요 없습니다. 제 [Universal Web Printer](/ko/tools/web-printer/)는 JavaScript를 렌더링해야 하므로 Playwright를 사용합니다. 작업에 맞는 도구를 쓰는 것이 중요합니다. --- 이는 이론적인 원칙이 아니라, 수백만 건의 요청을 처리하는 프로덕션 스크래퍼를 실제로 운영하며 얻은 결과물입니다. 이런 원칙으로 만들어진 맞춤 스크래퍼가 필요하다면 [이야기해봅시다](/ko/contact/). --- # 안티봇 방어 시스템 이해하기: 2026년 실전에서 통하는 방법 - **URL:** https://proooxy.com/ko/blog/bypassing-anti-bot-protection-guide/ - **유형:** blog - **설명:** Cloudflare, Akamai, Datadome 등 최신 안티봇 시스템을 기술적으로 심층 분석하고, 프로덕션 크롤링에서 실제로 사용되는 합법적인 우회 기법을 다룹니다. - **키워드:** 안티봇 우회 방법, cloudflare 우회, akamai bot manager 우회, datadome 우회, 봇 탐지 회피, 웹 크롤링 안티봇 대응 - **게시일:** 2026-03-15 - **수정일:** 2026-03-15 안티봇 방어는 군비 경쟁과도 같습니다. 이런 시스템을 매일 우회하는 프로덕션 스크래퍼를 만드는 실무자로서, 방어 시스템이 실제로 무엇을 검사하고 합법적인 우회 기법은 어떤 모습인지 현장의 시각에서 정리해봤습니다. ## 탐지 레이어 최신 안티봇 시스템은 여러 레이어로 동작합니다. 이 레이어들을 이해하는 것이 안정적인 우회의 핵심입니다: ### 레이어 1: IP 평판 가장 단순한 검사입니다. 안티봇 서비스는 알려진 데이터센터 IP 대역, VPN 종료 노드, 그리고 이전에 플래그가 지정된 IP의 데이터베이스를 유지합니다. **검사 항목:** - 이 IP가 AWS, GCP, Azure 또는 알려진 호스팅 제공업체에서 나온 것인가? - 이 IP가 이전에 봇 활동으로 플래그된 적이 있는가? - 최근 이 IP에서 얼마나 많은 요청이 발생했는가? **대응 방법:** Apify Proxy나 Bright Data 같은 서비스의 레지덴셜 프록시는 실제 ISP 소속 IP 주소를 제공하므로, IP 수준에서는 일반 사용자와 구분이 불가능합니다. ### 레이어 2: TLS 핑거프린팅 여기서부터 흥미로워집니다. 모든 HTTP 클라이언트는 다음 요소를 기반으로 한 고유한 TLS 핸드셰이크 시그니처를 가집니다: - 지원하는 암호 스위트와 그 순서 - TLS 확장과 그 순서 - 지원하는 TLS 버전 - ALPN 프로토콜 표준 `axios`나 `requests` 라이브러리는 실제 브라우저와 일치하지 않는 TLS 핑거프린트를 가지므로 누가 봐도 "봇"임을 드러냅니다. Akamai와 Cloudflare 같은 서비스는 모든 브라우저 버전에 대한 핑거프린트 데이터베이스를 유지합니다. **대응 방법:** (제 [Shopify 스크래퍼](/ko/tools/shopify-scraper/)가 사용하는) `got-scraping` 같은 라이브러리와 전용 TLS 클라이언트는 브라우저급 TLS 핑거프린트를 모방할 수 있습니다. 제 [Sephora EU 스크래퍼](/ko/tools/sephora-eu-scraper/)는 브라우저급 TLS 핑거프린팅으로 Akamai WAF를 우회합니다. ### 레이어 3: HTTP/2 핑거프린팅 TLS를 넘어, HTTP/2 설정도 클라이언트 유형을 드러냅니다: - SETTINGS 프레임 파라미터(헤더 테이블 크기, 최대 동시 스트림 수) - WINDOW_UPDATE 프레임 값 - 우선순위 트리 구조 - 헤더 압축(HPACK) 패턴 각 브라우저는 고유한 HTTP/2 설정을 가지고 있습니다. Chrome, Firefox, Safari는 이 수준에서 모두 다르게 보입니다. ### 레이어 4: JavaScript 챌린지 Cloudflare의 "브라우저 확인 중" 페이지와 유사한 챌린지들은 다음과 같은 작업을 수행하는 JavaScript를 실행합니다: - 브라우저 API 확인(canvas, WebGL, AudioContext) - 실행 타이밍 측정 - DOM 속성 검증 - 챌린지 응답을 서버로 전송 **대응 방법:** 헤드리스 브라우저(Playwright, Puppeteer)는 이런 챌린지를 네이티브로 실행합니다. 핵심은 헤드리스 브라우저가 자동화 신호를 노출하지 않도록 하는 것입니다(자세한 내용은 아래에서 다룹니다). ### 레이어 5: 행동 분석 가장 정교한 레이어입니다. 이 시스템들은 다음을 분석합니다: - 마우스 움직임 패턴(너무 직선적이면 = 봇) - 스크롤 행동(맨 아래로 즉시 스크롤 = 봇) - 행동 간 시간 간격(너무 일정하면 = 봇) - 탐색 패턴(둘러보지 않고 곧바로 상품 페이지로 이동 = 의심스러움) - 요청 주기(완벽하게 균일한 간격 = 봇) ## 방어 시스템 프로파일: 상대를 파악하라 ### Cloudflare **주로 사용되는 곳:** 중소규모 사이트, 블로그, API Cloudflare는 여러 단계의 방어 수준을 제공합니다: - **Basic** — IP 평판 + 레이트 리밋. 요청 속도를 지키는 데이터센터 프록시로 대개 충분합니다. - **Managed Challenge** — JavaScript 챌린지 + Turnstile. 브라우저나 챌린지 솔버가 필요합니다. - **Enterprise/Bot Management** — 전면적인 행동 분석 + 핑거프린팅. 레지덴셜 프록시와 정교한 핑거프린팅이 필요합니다. ### Akamai Bot Manager **주로 사용되는 곳:** 대형 이커머스(Sephora EU, 주요 리테일러) Akamai는 다음과 같은 이유로 우회하기 가장 까다로운 시스템 중 하나입니다: - 공격적인 TLS 핑거프린팅 - 클라이언트 측 JavaScript를 통한 센서 데이터 수집 - 세션 단위 행동 분석 - 쿠키 무결성 검증 Akamai에 대한 제 접근법: 브라우저급 TLS 핑거프린팅 + 게스트 토큰 관리 + 사람의 브라우징을 모방하는 요청 페이싱입니다. ### Datadome **주로 사용되는 곳:** 이커머스, 티켓 판매 Datadome은 다음에 집중합니다: - JavaScript를 통한 디바이스 핑거프린팅 - 의심스러운 트래픽에 대한 CAPTCHA 챌린지 - 실시간 행동 스코어링 ### PerimeterX(현 HUMAN) **주로 사용되는 곳:** 리테일, 금융 서비스 공격적인 JavaScript 챌린지와 행동 분석으로 잘 알려져 있습니다. ## 합법적 우회 아키텍처 안정적이고 지속적인 데이터 추출이 필요한 프로덕션 시스템을 위해, 제가 사용하는 아키텍처 패턴을 소개합니다: ### 1. API 우선 접근 방어 시스템을 우회하려 시도하기 전에, WAF를 아예 거치지 않는 API 경로가 있는지 먼저 확인하세요. 많은 방어 시스템은 API 라우트가 아니라 브라우저를 대상으로 하는 엔드포인트에만 적용됩니다. 제 [Sephora 스크래퍼](/ko/tools/sephora-scraper/)는 모든 웹 URL을 API 호출로 변환합니다. 이 API 엔드포인트는 모바일 앱을 위해 설계되었기 때문에 웹사이트보다 방어 수준이 약합니다. ### 2. 세션 워밍 데이터 페이지로 곧장 이동하지 마세요. 현실적인 브라우징 세션을 구축하세요: ``` Visit homepage → Browse categories → View product listing → Access product detail ``` 각 단계가 세션의 신뢰도를 쌓아갑니다. 안티봇 시스템은 실제 사용자 행동과 일치하는 패턴을 보게 됩니다. ### 3. 핑거프린트 일관성 이 부분이 중요합니다: 핑거프린트는 **내부적으로 일관되어야** 합니다. TLS는 "Chrome 120"을 가리키는데 User-Agent는 "Chrome 118"을 가리킨다면, 이는 탐지 신호가 됩니다. 다음 항목을 일치시키세요: - TLS 핑거프린트 - HTTP/2 설정 - User-Agent 헤더 - Accept-Language 및 기타 헤더 - JavaScript 브라우저 속성(헤드리스 사용 시) ### 4. 요청 페이싱 실제 사람은 정확히 1초 간격으로 요청을 보내지 않습니다. 현실적인 변동성을 부여하세요: - 요청 간 기본 지연(2~5초) - 무작위 지터(±30%) - 탐색 이벤트 이후 더 긴 대기 - 가끔의 "휴지" 구간 ### 5. 우아한 실패 처리 챌린지나 차단에 부딪혔을 때: 1. 즉시 재시도하지 마세요 — 봇 행동임을 확인시켜줄 뿐입니다 2. 지수적으로 백오프하세요 3. 새 세션으로 전환하세요(새 IP + 새 쿠키) 4. 다른 프록시 지역을 시도하세요 5. 계속된다면 브라우저 기반 접근 방식으로 전환하세요 ## 더 이상 통하지 않는 방법 - **User-Agent만 바꾸기** — 탐지 시스템은 헤더 하나가 아니라 수십 개의 신호를 검사합니다 - **무작위 지연만 적용하기** — 제대로 된 핑거프린팅 없이는 타이밍 조절만으로는 소용없습니다 - **기본 설정의 헤드리스 Chrome** — 자동화 신호가 곳곳에서 노출됩니다(`navigator.webdriver`, 누락된 플러그인, Chrome DevTools Protocol 흔적) - **쿠키 재사용** — 최신 시스템은 쿠키를 TLS 핑거프린트와 IP 대역에 결속시킵니다 ## 윤리적 고려사항 안티봇 우회는 하나의 도구입니다. 다른 도구들과 마찬가지로 책임감 있게 쓰일 수도, 무책임하게 쓰일 수도 있습니다. **정당한 사용 사례:** - 소비자 이익을 위한 가격 비교 - 공개 데이터를 활용한 시장 조사 - 접근성 향상(데이터를 구조화된 형식으로 제공) - 학술 연구 - 품질 보증 및 모니터링 **항상 준수해야 할 것:** - robots.txt 지시사항 - 레이트 리밋(초과할 수 있더라도 초과하지 마세요) - 개인정보 보호 규정(GDPR, CCPA) - 서비스 이용약관(관할권의 법적 환경을 이해하세요) 제 모든 [도구](/ko/tools/)는 레이트 리밋과 프록시 모범 사례를 기본 내장한, 정당한 데이터 추출을 위해 설계되었습니다. --- 안티봇 시스템을 이해하면 더 나은 크롤링 엔지니어가 될 수 있습니다. 이런 문제들을 안정적으로 처리하는 프로덕션급 스크래퍼가 필요하다면, 제 [도구들](/ko/tools/)을 확인하거나 맞춤 작업을 위해 [연락해주세요](/ko/contact/). --- # 문의 - **URL:** https://proooxy.com/ko/contact/ - **유형:** page - **설명:** 맞춤 스크래퍼 또는 RAG 데이터 파이프라인을 의뢰하세요 — 비공개 API 리버스 엔지니어링, 안티봇 우회, 그리고 AI 스택에 바로 전달되는 클린한 구조화 JSON까지. - **키워드:** 웹 크롤링 개발자 채용, 맞춤 스크래퍼 개발, 웹 크롤링 대행 서비스, RAG 데이터 파이프라인, 데이터 추출 서비스, 웹 크롤링 컨설팅 - **게시일:** 0001-01-01 - **수정일:** 0001-01-01 ## 카탈로그에 없는 데이터 구하기 AI 팀, 데이터 플랫폼, 그리고 오픈 웹을 클린한 구조화 JSON으로 확보해야 하는 모든 분들을 위해 맞춤형 웹 스크래퍼와 RAG 데이터 파이프라인을 만듭니다. 일회성 수집이든 지속적으로 업데이트되는 피드든 도와드릴 수 있습니다. ### 제가 만드는 것 - **맞춤 스크래퍼** — 타겟 사이트에 맞춰 제작하며, 안티봇 우회 기능을 기본 탑재 - **RAG 데이터 파이프라인** — 추출, 정규화, 청킹을 거쳐 리트리벌 준비가 완료된 JSON을 벡터 스토어나 데이터 웨어하우스에 전달 - **비공개 API 리버스 엔지니어링** — 문서화되지 않은 모바일/웹 엔드포인트를 안정적인 구조화 소스로 전환 - **스크래퍼 유지보수** — 타겟 사이트가 변경되어도 기존 추출기가 계속 동작하도록 유지 - **기술 컨설팅** — 크롤링 및 데이터 수집 스택에 대한 아키텍처 리뷰 ### 진행 방식 1. **데이터 정의** — 소스, 필요한 필드, 전달 형식을 알려주세요 2. **무료 실현 가능성 검토** — 타겟의 복잡도와 안티봇 방어 수준을 무상으로 평가합니다 3. **제안 및 일정** — 명확한 범위, 고정 가격, 납기일 제시 4. **제작 및 납품** — 문서화와 클린한 출력을 갖춘 프로덕션급 추출기 전달 ### 프로젝트 시작하기
### 또는 직접 연락하기 - **이메일**: [p8p9cmk96@mozmail.com](mailto:p8p9cmk96@mozmail.com) - **GitHub**: [@autofacts](https://github.com/autofacts) - **Apify**: [apify.com/autofacts](https://apify.com/autofacts) --- # 소개 - **URL:** https://proooxy.com/ko/about/ - **유형:** page - **설명:** Richard Feng — 12년 이상의 경력을 가진 웹 크롤링 엔지니어입니다. 보호된 웹사이트를 AI 에이전트, 리트리벌 파이프라인, LLM을 위한 클린 RAG-레디 구조화된 데이터로 바꿉니다. - **키워드:** 웹 크롤링 엔지니어, 데이터 추출 컨설턴트, 맞춤 스크래퍼 개발, 안티봇 우회 전문가, RAG 데이터 파이프라인 컨설팅, API 리버스 엔지니어링 - **게시일:** 0001-01-01 - **수정일:** 0001-01-01 ## 소개 저는 Richard Feng, 12년 이상의 코딩 경력을 가진 프리랜서 웹 자동화 엔지니어입니다. **웹 크롤링, 데이터 추출, API 리버스 엔지니어링**을 전문으로 하며, 복잡하고 보호된 웹사이트를 AI 시스템이 실제로 활용할 수 있는 클린한 구조화 데이터로 바꿉니다. 제 툴킷은 **Node.js (TypeScript), Python, Go, Java**를 아우르며, **Crawlee, Playwright, Cheerio**에 대한 깊은 전문성을 갖추고 있습니다. 수백만 건의 요청을 **>99% 성공률**로 처리하는 프로덕션 시스템을 구축해왔습니다. ## 하는 일 **3,100명** 이상의 사용자에게 지속적으로 **>99%의 실행 성공률**을 제공하는 **16개의 프로덕션급 Apify 액터**를 만들고 유지보수하고 있습니다. 모든 액터는 클린한 **RAG-레디 JSON**을 출력합니다 — 스키마가 일관되고, 중복이 제거되어, 벡터 스토어·리트리벌 파이프라인·학습 세트에 바로 투입할 수 있습니다. 대부분의 공개 데이터 액터는 API 키가 필요 없습니다. 제 작업은 크게 네 가지 영역으로 나뉩니다: ### 이커머스 및 리테일 데이터 [Sephora](/ko/tools/sephora-scraper/)(글로벌 21개 스토어), [Ulta Beauty](/ko/tools/ulta-scraper/), [Farfetch](/ko/tools/farfetch-scraper/), [Lululemon](/ko/tools/lululemon-scraper/), [Boohoo](/ko/tools/boohoo-scraper/), [Macy's](/ko/tools/macys-scraper/) 등 주요 뷰티·패션 플랫폼용 스크래퍼와, Shopify 기반이라면 어떤 스토어에도 동작하는 범용 [Shopify 스크래퍼](/ko/tools/shopify-scraper/)를 제공합니다. ### 공공·금융·법률 데이터 미국 공식 데이터셋을 클린한 RAG-레디 JSON으로 제공합니다 — [SEC EDGAR 공시 및 XBRL 재무 데이터](/ko/tools/sec-edgar-scraper/), [USAspending.gov 연방 지출 내역](/ko/tools/usaspending-scraper/), [CourtListener 판례](/ko/tools/courtlistener-scraper/), [ClinicalTrials.gov 임상시험](/ko/tools/clinical-trials-scraper/). ### 소셜 및 미디어 인텔리전스 AT Protocol을 통한 [Bluesky](/ko/tools/bluesky-scraper/) 게시물·프로필·인터랙션 데이터, 그리고 100개 이상의 언어로 JSON, SRT, VTT, LLM-레디 텍스트를 출력하는 [YouTube 자막·스크립트 스크래퍼](/ko/tools/youtube-transcript-scraper/)를 제공합니다. ### 개발자 유틸리티 크롤링을 넘어선 도구들입니다 — [SEO 및 구조화 데이터 감사](/ko/tools/schema-markup-scraper/), [웹-투-PDF/이미지 렌더링](/ko/tools/web-printer/), [고성능 부하 테스트](/ko/tools/load-tester/). ## 전문 분야 - **비공개 API 리버스 엔지니어링** — 문서화되지 않은 모바일/웹 엔드포인트를 안정적인 데이터 소스로 전환 - **안티봇 우회** — Cloudflare, DataDome, Akamai WAF 및 커스텀 방어 시스템 - **RAG-레디 출력** — 리트리벌과 그라운딩을 위해 설계된 정규화·스키마 일관 JSON - **다중 지역 크롤링** — 로케일, 통화, 컴플라이언스까지 처리 - **고신뢰성 시스템** — 대규모에서도 >99% 성공률을 유지하는 추출기 ## 기술 스택 | 분류 | 기술 | |----------|-------------| | 언어 | TypeScript, Python, Go, Java | | 크롤링 | Crawlee, Playwright, Cheerio, Parsel, got-scraping | | 안티봇 | 핑거프린트 생성기, TLS 핑거프린팅, 세션 로테이션 | | 인프라 | Apify Platform, Docker, GitHub Actions | | 테스트 | Vegeta, 커스텀 부하 테스트 프레임워크 | ## 함께 일하기 맞춤 크롤링 솔루션, RAG 데이터 파이프라인 엔지니어링, 지속적인 데이터 추출 서비스를 제공합니다. AI에 실제 웹 데이터를 클린한 형태로 공급해야 한다면 — [이야기해봅시다](/ko/contact/). ---