[Python] 아마존 API를 이용한 ASIN 정보 수집
아마존 API를 이용해 키워드에 해당되는 상품의 ASIN 정보를 수집한다. bottlenone, BeautifulSoup, html5lib 모듈을 이용했다. 해당 모듈은 아래와 같이 설치했다. 파이썬 3.6 버전을 기준으로 한다.
$ python3.6 -m pip install beautifulsoup4
$ python3.6 -m pip install html5lib
$ python3.6 -m pip install bottlenose
다음으로 아래의 파이썬 코드를 작성한다.
# _*_ coding: utf-8 _*_
import bottlenose
from bs4 import BeautifulSoup
import html5lib
AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID"
AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY"
AWS_ASSOCIATE_TAG = "AWS_ASSOCIATE_TAG"
amazon = bottlenose.Amazon(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_ASSOCIATE_TAG)
page = 1
for page in range(1, 6):
response = amazon.ItemSearch(Keywords="fishing rod", SearchIndex="All", MaxQPS=0.7, ItemPage=page)
result = BeautifulSoup(response, "html5lib")
for item in result.findAll("item"):
print(item.asin.string)
아마존 API 키 정보는 미리 발급되어 있어야 한다.
참고자료
– http://docs.aws.amazon.com/AWSECommerceService/latest/DG/Welcome.html
– http://docs.aws.amazon.com/AWSECommerceService/latest/GSG/GettingStarted.html
편리님의 포스팅 및 다른 게시글들을 참조하여 아마존 주문 웹페이지 파싱을 2주째 시도하고 있는데, 첫 단계부터 아직 해결이 안되고 있습니다. 즉 사용자 인증이 된 웹페이지를 읽어오지 못하는 겁니다. 실례가 되지 않는다면 몇 가지 질문드리겠습니다.
1. 아마존 API를 사용하기 위해서는 bottlenose는 필수로 있어야 되는 건가요?
2. 예제에는 ‘AWS_ACCESS_KEY_ID’, ‘AWS_SECRET_ACCESS_KEY’, ‘AWS_ASSOCIATE_TAG’ 이렇게 3개의 키값을 정의하고 있는데, 이들 키값 변수명들은 지정어인가요? 그리고 ‘AWS_ASSOCIATE_TAG’는 발급항목이 아닌데, 꼭 필요한 내용인지요?
3. 결론적으로 아마존 API 키값을 어떻게 선언을 해주어야 제대로 된 웹페이지를 가져올 수 있을지 알고 싶습니다.
안녕하세요.
포스트의 코드는 아마존의 상품광고 API(http://docs.aws.amazon.com/AWSECommerceService/latest/GSG/GettingStarted.html)를 이용하기 때문에 먼저 아마존 어필레이트 프로그램에 가입하시고 API ID 등의 정보를 발급받으셔야 합니다. AWS_ACCESS_KEY_ID 등은 발급받은 ID 등의 정보로 대체하시면 됩니다.
bottlenose 모듈은 아마존 상품광고API를 이용하기 위한 모듈로 필수입니다. 만약 해당 API 처리를 직접하시려면 위 코드를 bottlenose 모듈을 사용하지 않는 코드로 변경하셔야 합니다.
답변 감사합니다.
아마존 AWS Key 값은 발급받아 놓았습니다. 제가 하고자 하는 것은 아마존 주문데이타에서 구매자 이름, 주소 등을 추출하고 이를 이용하여 우체국송장을 만드는 것 까지입니다. 그런데 첫 단계인 파이썬에서 이들 데이타를 어떻게 가져와야 할지를 모르는 것입니다. 위에 답변하신 내용을 토대로 추측해 보면 아마존 상품광고 API 처럼 주문관리 API가 따로 있어 이를 이용하도록 되어 있는 것 같습니다. 혹시 아래 도큐멘트가 아닌가 싶습니다. 하지만 이게 맞다고 해도 여기서 어떤 명령어를 써야 데이타를 가져올 수 있을지 모르겠는데, 수고스러우시겠지만 한 번 봐 주시면 고맙겠습니다.
https://docs.developer.amazonservices.com/en_UK/orders-2013-09-01/Orders_GetOrder.html
구글 검색창에 amazon mws api python 라고 입력해보시면 python 스크립트가 몇가지 검색됩니다.
https://bitbucket.org/richardpenman/amazon-mws-python 의 코드를 참고해보세요.
위 Python 코드가 제대로 작동하는지는 테스트하지 않았습니다.
그리고 포스트와 관련이 없는 기능 구현에 대해서는 답변이 어렵습니다.
알겠습니다. 감사합니다.