- Playwright 기반 자동화
- TheMore.App 에서 구매 가능한 아마존 기프트 카드 목록 중 가장 저렴한 가격의 기프트 카드 추출
- 환율 보정 등의 기능을 사용하여 사용자가 원하는 정책 기반으로 설정
- 아마존 기프트 카드 구매 페이지에 접속하여 추출한 달러 금액으로 기프트 카드 구매 시도
- 입력한 계정 정보로 로그인 시도
- 기본적인 Captcha의 경우 자동으로 처리되나, OTP, 이메일 인증 등은 처리 불가
- 주 거래 카드로 구매 시도
- TheMore.App 에서 구매 가능한 아마존 기프트 카드 목록 중 가장 저렴한 가격의 기프트 카드 추출
- 프로젝트 클론
git clone https://github.com/cda2/themore_amazon
config.json
파일을 열어서 설정 파일 수정- 아마존 계정 정보를 입력
email
: 아마존 이메일password
: 아마존 비밀번호
- 브라우저 관련 설정 (관심 없는 경우 수정 불필요)
timeout
: 브라우저 타임아웃, 기본 값은10000.0
headless
: 브라우저를 숨김 모드로 실행할지 여부, 기본 값은False
(xvfb
미 사용 시True
로 설정)
- 가격, 환율 보정 등의 기능이 기본적으로 설정되어 있으나, 필요에 따라 수정 가능 (환율 보정 관련 내용은 TheMore.App 참고)
min_order_price
: 최소 주문 금액, 기본 값은5.0
(달러 기준, 최소 금액 기준이 이후 변경되는 경우 설정 값을 수정할 것)is_safe
:True
인 경우 환율 보정 처리를 수행, 기본 값은True
safe_gap
: 환율 보정 시 사용할 환율 오차, 기본 값은1.0
- 필자가 사용해 본 바로는 환율 보정을 지나치게 높게 사용해도, 안정적인 환율 변화가 장시간 지속 시 손해가 됨
- 아마존 계정 정보를 입력
docker
환경 구성docker run --mount type=bind,source="$(pwd)"/config.yml,target=/app/config.yml,readonly --init $(docker build -q .)
명령어 실행
# EMAIL="아마존 이메일"
# PASSWORD="아마존 비밀번호"
sed -i -e "s/your_email@example.com/$EMAIL/" -e "s/your_password/$PASSWORD/" config.yml
docker run --mount type=bind,source="$(pwd)"/config.yml,target=/app/config.yml,readonly --init $(docker build -q .)
- 브라우저 옵션에서
headless
를True
로 설정 시 아마존에서 높은 확률로 이메일 인증을 요구할 수 있음- 가상 디스플레이 등으로 해결 가능
- xvfb 등 참고
- 또는 설정 파일 수정 후 Dockerfile 실행
- 가상 디스플레이 등으로 해결 가능
- 스크립트 실행 시 자주 사용하던 IP 주소가 아닌 경우 아마존에서 재로그인, 캡챠 등을 요구할 수 있음
- 프록시 설정 등으로 해결 가능
- 가급적 자주 사용하는 IP 주소에서 실행할 것을 권장
Python 3.10+