# 대규모로 웹 스크래핑하기

> Clean Markdown view of GeekNews topic #5454. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=5454](https://news.hada.io/topic?id=5454)
- GeekNews Markdown: [https://news.hada.io/topic/5454.md](https://news.hada.io/topic/5454.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2021-11-29T11:00:01+09:00
- Updated: 2021-11-29T11:00:01+09:00
- Original source: [incolumitas.com](https://incolumitas.com/2021/11/03/so-you-want-to-scrape-like-the-big-boys/)
- Points: 29
- Comments: 12

## Topic Body

- 만약 구글검색을 수백만건씩 실행하는 서비스를 만든다면 차단 당하지 않을 대안이 필요함

- 가장 쉬운 것은 유료 프록시를 사용하는 것이지만 상당히 비싼편

ㅤ→ 그래서 필자가 시도해본 것들을 상세히 설명한 재미난 글

- 처음엔 AWS Lambda + Puppeteer를 사용

ㅤ→ AWS가 전세계 16개 리전을 제공하고, 3번 Lambda를 실행하면 새 IP가 지정됨

ㅤ→ 동시에 1000개의 람다를 실행하면 약 250개의 퍼블릭 IP를 사용하게 됨

ㅤ→ 16개 리전 * 250 이면 4000개의 IP주소이고, 이정도면 주간 백만단위의 구글 검색을 수행하는데 충분

ㅤ→ GCP에서도 써봤는데, 웃긴게 구글이 자신의 클라우드 IP를 더 공격적으로 차단함 (AWS와 비교해서)

ㅤ→ 2019~2020년 사이 얘기고 변했을 수 있음

- 이 방법은 구글/빙/아마존 등을 스크래핑 하는데는 사용 가능 하지만 한계가 있음

ㅤ→ DataDome, Akamai, Imperva 같은 안티 봇 회사를 이용한다면 적용 불가

ㅤ→ 굉장히 다양한 방식으로 브라우저 핑거프린팅을 통해서 봇인지를 식별해 냄

ㅤ→ 구글 Picasso, Font/TLS/WebGL Fingerprinting..

ㅤ→ 사실 대부분의 대규모 Scraping 서비스는 클라우드 + 도커 컨테이너들 을 사용하기에 식별하기에 쉬움

- 감지하기 어렵고 확장 가능한 스크래핑 인프라

ㅤ→ 성공적으로 스크래핑 하기 위한 두가지 법칙

ㅤㅤ1. 브라우저 설정을 속이지 않기

ㅤㅤ2. 가장 중요한 것은 "아무도 눈치 채지 못할 경우에만" 브라우저 설정을 속일 것

ㅤ→ 이를 위해서는 그냥 "실제 디바이스를 사용"하는게 가장 좋다는 결론

ㅤㅤ⇨ 500대의 싼 안드로이드 기기를 제조사 여러곳에서 구입하고, 저렴한 데이터 플랜을 가입

ㅤㅤ⇨ 여러 도시에 분산 (안테나 가까운 곳에)

ㅤㅤ⇨ DeviceFarmer/stf 같은 오픈소스를 활용해서 기기를 동시에 컨트롤

ㅤㅤ⇨ Android Go 같은 경량OS를 설치하고, 5분마다 에어플레인모드로 들어가게 해서 계속 새로운 IP주소를 획득

ㅤㅤ⇨ "4G carrier grade NAT" : 4G 캐리어급 NAT는 IPv4 주소 고갈을 막기 위해 고안된 방식으로 IP를 수십만이 공유하기 때문에 차단이 불가능

ㅤ→ 500대의 안드로이드 기기를 사야 하고, 설치 장소가 필요하고, 하드웨어 유지보수 해야 하는 등 귀찮은 점이 많음

- 개선 : 안드로이드를 Emulate

ㅤ→ 안드로이드 기기를 사는 대신, Android-X8, Bluestacks, Android Studio Emulator 등을 이용하면 ?

ㅤ→ Proxidize 는 4G 모바일 프록시를 만들 수 있게 함

ㅤ→ 서버 한대에 50개의 4G 동글을 설치

ㅤ→ 각 서버에서 50~100개의 안드로이드 기기를 에뮬레이트

ㅤ→ 이 스테이션을 5개 도시에 설치

ㅤ→ 단단한 코맨드로 이 스테이션들을 관리

## Comments



### Comment 7797

- Author: xguru
- Created: 2021-12-06T10:31:01+09:00
- Points: 1

- 봇 감지 우회하기 : 차단당하지 않고 웹 스크레핑 하는 법 https://news.hada.io/topic?id=5304

프록시, 스크래핑 서비스, 안티봇 소프트웨어 등은 위 글에 잘 정리되어 있습니다.

### Comment 7793

- Author: eajrezz
- Created: 2021-12-06T00:28:16+09:00
- Points: 1

멋진 해킹이네요!

### Comment 7788

- Author: joone
- Created: 2021-12-04T13:32:58+09:00
- Points: 1

https://www.diffbot.com/products/crawl/

crawling해서 webpage scraping 해주는 서비스도 있습니다. scraping한 데이터는 불필요한 정보는 제외하고 json으로 저장하고 있습니다.

### Comment 7701

- Author: benjamin
- Created: 2021-11-29T15:32:11+09:00
- Points: 1

입이 쩍...

### Comment 7697

- Author: xguru
- Created: 2021-11-29T11:31:37+09:00
- Points: 1

전혀 다른 얘기지만..

구글 검색을 API화 해서 파는 https://serpapi.com/ 같은 데도.. 있습니다.

근데 여기는 네이버 검색도 API 화 해서 같이 팔아요 ㅎㅎ

https://serpapi.com/naver-search-api

월 3만번 검색에 $250 이라는 놀라운? 가격

### Comment 7700

- Author: v08zbv8fvlkjasdflkj
- Created: 2021-11-29T15:22:48+09:00
- Points: 1
- Parent comment: 7697
- Depth: 1

너무 비싸서 놀라운건가요? 감이 안와서요

### Comment 7702

- Author: xguru
- Created: 2021-11-29T15:34:09+09:00
- Points: 1
- Parent comment: 7700
- Depth: 2

네 엄청 비싼 거죠. 유료 프록시 쓰는등에 비해서는요.

api라 차단 우려없이 편하긴 합니다만

### Comment 7695

- Author: hentol
- Created: 2021-11-29T11:24:33+09:00
- Points: 1

국내 기준으로는 데이터가 어느 정도 제공되는 0원 알뜰폰 요금제들이 생각나긴 하는데...

대량 가입이 어렵다 보니 요것도 힘들겠군요.

### Comment 7696

- Author: xguru
- Created: 2021-11-29T11:27:23+09:00
- Points: 1
- Parent comment: 7695
- Depth: 1

Google Fi의 경우는 회선 하나에 추가 데이터심 4개까지 가능하니 이런 것도 방법이긴 할 듯 합니다

### Comment 7694

- Author: nallwhy
- Created: 2021-11-29T11:17:23+09:00
- Points: 1

예전에 naver 의 무언가를 스크래핑할 때

AWS lambda 에서는 안되고 GCP functions 에서는 되었던 기억이 있는데,

IP range 가 오픈되어있어서 그럴 것이라고 생각했는데 그렇지도 않은가보네요.

### Comment 7693

- Author: honore
- Created: 2021-11-29T11:15:06+09:00
- Points: 1

1번 방식으로 이미 하고 있어서 다른 방법들은 뭐가 있나 하고 봤는데.. 생각지도 못 했네요.

### Comment 7691

- Author: xguru
- Created: 2021-11-29T11:01:02+09:00
- Points: 2

사실 1번의 Lambda+Puppeteer 도 저 방식으로 하면 괜찮긴 할거 같은데

맨뒤의 Proxidize 방법과 비교했을때는 아마도 스크래핑 규모에 따라 비용 차이가 날듯합니다.

더 대용량이 필요할수록 Proxidize가 안정적일 테지만, 간단히 하기엔 1번도 나쁘지 않을것 같아요.

마지막에 소개한 https://proxidize.com/ 이 재미나네요.

직접 4G 모바일 프록시를 만들어서 관리하게 해주는 하드웨어+소프트웨어 솔루션 입니다.

5개 동글 버전이 $399 네요. 사용자들 국가리스트에 한국도 있는거 봐서는 사용은 가능할듯 ?

CGNAT 까지는 아니자만, 소프트웨어 프록시를 풀로 관리하는 Scrapoxy 같은 솔루션도 있습니다.

- Scrapoxy - 웹크롤러용 프록시 풀 관리도구 https://news.hada.io/topic?id=2308
