본문 바로가기
SWE/Learning Diary

웹 크롤링 유료 프록시 순위

by S나라라2 2023. 3. 19.
반응형

 

 

웹 스크래핑시 프록시가 필요한 이유

웹 스크래핑시 하나의 IP 주소에서 너무 많은 request 요청을 요구하기 때문에, 서버의 IP가 블럭될 수 있다. (웹 마스터가 막아버린다) 따라서 프록시를 이용해 IP주소를 바꿔가면서 계속해서 작업을 수행한다.

 

프록시 서버는 리소스를 구해오는 대리자 역할을 수행한다.

클라이언트 —-> 프록시 —-> 서버 (리소스)

 

*참고) web crawling / web scraping 다른 용어다.

차이점은 ‘웹 크롤링'은 웹 페이지의 링크를 타고 계속해서 탐색을 이어가지만, ‘웹 스크래핑'은 데이터 추출을 원하는 대상이 명확하여 특정 웹사이트만 추적한다.

 

프록시 유료 구입을 위해서 사전에 알아야하는 것

 

 

프록시 타입들

3가지 종류의 프록시가 있다.

  1. 데이터센터 프록시: 클라우드서비스 제공자들로부터 지원하는 프록시들이다. 많은 사람들이 사용하는 것으로 알려져 있다. 그러나 가격이 저렴하기 때문에, 저품질 프록시들이 웹 크롤링에 많이 사용된다.
  2. 거주용 IP 프록시: 로컬 ISP의 IP주소이다. 그래서 웹마스터가 실제 사람이 웹 사이트를 보고 있는 것인지 웹 크롤링하고 있는건지 구분하지 못한다. 데이터센터 프록시에 비해 매우 비싸고, 만약 IP 소유자가 웹크롤링 목적으로 자신의 IP가 사용되고 있다는 것을 완전히 인지하지 못하면 법적 문제를 야기할 수 있다.
  3. 모바일 IP 프록시: 개인용 모바일 기기의 IP주소이다. 거주용 IP와 유사하다. 매우 비싸고 모바일 기기 소유자가 인지하지 못할 경우 법적 문제를 야기할 수 있다.

-> 거주용 IP 프록시 가장 안전. 데이터 센터 프록시의 경우 웹 크롤링하는 것을 쉽게 들키고 보통 SSL 인증서가 적절히 고려되지 않은채 수행됨. 즉 블럭킹될 위험성이 가장 높음.

 

따라서 거주용 IP 프록시 제공해주는 업체 비교

 

 

거주용 IP 서비스 제공자 비교 리스트

Proxyway : 프록시 서버들 평가하는 독립적인 플랫폼

https://proxyway.com/best/residential-proxies#Smartproxy

 

  • 순위
  1. SmartProxy
  2. Oxylabs
  3. Bright Data 
  4. SOAX -> 4위부턴 response time이 1초 이상이라 고려 대상에서 제외
  5. NetNut 

 

  • 금액

 

 

유료 프록시 사용 방법 

예제 참고 : Smartproxy

구매하면 id password를 통해 proxy ip address 제공 받음

api 제공하고 있음

매 세션마다 다른 ip를 제공해주기 때문에 block될 위험이 적음.

smaprtproxy 사용법 : https://help.smartproxy.com/docs/how-do-i-use-proxies

smartproxy api 참고 코드 제공 : https://github.com/Smartproxy/Smartproxy-API

 

-> 다른 업체도 동일하게 id, password 방법으로 제공함.



금액 시뮬레이션

  • 트랜잭션 테스트

랜덤으로 아래 웹 사이트 접속할 때 데이터 트랜잭션 크기 확인함

네이버 뉴스 홈: 2MB, 1.3MB, 248kB, 2.8MB

네이버 블로그: 5MB, 5.2MB, 5.7MB, 6.4MB

유튜브 영상: 2.1MB, 7.6MB, 14.4MB, 20.7MB

(유튜브는 바로 영상 스트리밍되서 부정확함)

깃허브: 306kB, 371kB, 181kB

티스토리 블로그: 4.7MB, 2.8MB

캐치: 8.7MB

 

=> 1번 웹사이트 크롤링할 때 5MB 라고 가정하면, 200번 크롤링할 때 1GB 부과



웹사이트만 살펴봤을 때 느낀점

  • Smartproxy 

장점: 매뉴얼, api 사용법, 구매법 등 설명이 자세히 잘 나와있어서 편함. 이해가 쉬움

단점: 프록시 프로토콜 socks5 지원 안함. 지역 타겟팅 제한이 있음 (일부 웹사이트는 특정 나라 접속을 제한하기 때문에 지역 타겟팅해서 Ip endpoint 얻어오는 기능 지원이 필요함)

 

참고1) 프록시 프로토콜이란?

  • Http 프록시
  • Socks5 프록시 : 운영 체제의 심층에서 작업하는 더 강력한 프록시 서버로 더 많은 앱을 처리하고 블록을 더 잘 관통할 수 있다.

-> 단순하게 생각해서 socks5 프록시가 더 좋다.

 

 

위의 유료 프록시 구매하여 구축 방법

크롤링 라이브러리 2가지

1)페퍼티어: 사용 쉬움. 성능 좋음. 단점은 chrome 전용

2)셀레니움: IE지원!!

AWS에 크롬 웹드라이버 설치 필수. 혹은 이러한 드라이버를 갖춘 이미지를 허브에서 찾아서 도커 활용하면 됨.

 

 

유료 프록시 구매하지 않고, 무료 프록시 이용 방법

무료 프록시 제공하는 웹 사이트 url 알아둠.

해당 사이트의 구조 분석해서 ip 주소와 port 저장해서 프록시로 활용

(latency로 정렬해서 빠른 것 위주로 사용함)

-> 단점은 대부분의 무료 프록시 웹 사이트는 이미 블록킹 돼있는 경우가 많아서, 사용 가능한 주소 찾는게 어려움.

무료 프록시 활용 코드 예제 : https://m.blog.naver.com/minim83/221978014069



참고2) 웹 스크래핑을 위한 프록시 사용 가이드

전체적으로 정리 잘 되어 있음 : https://www.geeksforgeeks.org/the-complete-guide-to-proxies-for-web-scraping/

 

반응형