2016-07-02 1 views
8
from amazon.api import AmazonAPI 

AMAZON_ACCESS_KEY = "A******************A" 
AMAZON_SECRET_KEY = "7***********************E" 
AMAZON_ASSOC_TAG = "j*****-20" 

amazon = AmazonAPI(AMAZON_ACCESS_KEY, AMAZON_SECRET_KEY, AMAZON_ASSOC_TAG, region='US') 
print(amazon) 
#product = amazon.lookup(ItemId='B002RL8FBQ') 

을 찾을 때 : <amazon.api.AmazonAPI object at 0x7fb6e59f7b38>아마존 간단한 제품 API 오류가 잘 작동하고 나는 인쇄 기능에서이 출력을 얻을 위에 나는이 코드를 실행하면 제품을

그래서 모든 것이 내 액세스 키와 잘 작동을, 비밀 키 및 연관 태그가 있습니다. 나는 당신이 볼 수 사용하고이 https://github.com/yoavaviram/python-amazon-simple-product-api하고 코드의 공식 GitHub의에서 지시를 따랐다

Traceback (most recent call last): 
    File "test.py", line 8, in <module> 
    product = amazon.lookup(ItemId='B00EOE0WKQ') 
    File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/amazon/api.py", line 173, in lookup 
    response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs) 
    File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/bottlenose/api.py", line 251, in __call__ 
    {'api_url': api_url, 'cache_url': cache_url}) 
    File "/home/darren/Python_projects/amazon_wp/myvenv/lib/python3.4/site-packages/bottlenose/api.py", line 212, in _call_api 
    return urllib2.urlopen(api_request, timeout=self.Timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 161, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 469, in open 
    response = meth(req, response) 
    File "/usr/lib/python3.4/urllib/request.py", line 579, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.4/urllib/request.py", line 507, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 441, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 587, in http_error_default 
    raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 400: Bad Request 

: 나는 다음 마지막 줄 #product = amazon.lookup(ItemId='B00EOE0WKQ')을 유엔의 주석 경우

는 그러나, 나는이 오류 역 추적을 얻을 github 페이지의 "Usage"소제목에서 사용 했으므로 잘못된 점이 무엇인지 잘 모릅니다.

추가 정보에 대한

, 내가 가상 환경을 사용하고 내가 내 아웃 핍 동결 넣고 여기에 올바른 패키지가 있음을 보여주기 위해 : 또한

(myvenv) [email protected]_comp:~/Python_projects/amazon_wp$ pip3 freeze 
bottlenose==0.6.3 
lxml==3.6.0 
python-amazon-simple-product-api==2.1.0 
python-dateutil==2.5.3 
six==1.10.0 

, 나는 여러 가지 ASIN 번호를 시도했다 유효한 제품 및 동일한 오류 메시지가 나타납니다.

나는 당신이 API access 귀하의 계정에 권한을 부여해야 할 수도 있습니다 우분투 14.04에

+0

여러 계정이 있습니까? 스크립트에 사용 된 계정을 승인 했습니까? 다른 사람이 아닌 –

답변

-1

을 파이썬 3.4을 사용하고 있습니다. 이 step-by-step을 통해 안내해야합니다.

편집 :


나는 같은 버전을 모두 설치 한 내 자신의 키와 같은 파이썬 코드를 사용하고 그것을 잘 작동합니다. 내가 그 오류를 만난 유일한 시간은 당신이 분명히하고있는 지역을 지정하지 않았을 때였습니다. 내가 시도 할 것

한 가지 스크립트에 다음 코드를 추가하는 것입니다

수입 로깅
logging.basicConfig (레벨 = logging.DEBUG)

를 표시해야하는 다음 요청 URL :

DEBUG : bottlenose.api : 아마존 URL : http://webservices.amazon.co.uk/onca/xml?AWSAccessKeyId= & AssociateTag = & 항목 Id = B00EOE0WKQ & 운영 = ItemLookup & ResponseGroup = 큰 & S 서 비 스 = AWSECommerceService & 타임 스탬프 = & 버전 = 2013년 8월 1일 & 서명 =

당신은 당신의 브라우저에서 방문 할 수 있고해야 리턴 된 XML 문서를 참조하십시오. 실패 할 경우 pythonlib에서 제공하는 것보다 더 나은 오류를 줄 수 있습니다.

예를 들어 https://associates-amazon.s3.amazonaws.com/scratchpad/index.html을 방문하면 (나를 위해이 기능을 사용하지 못했지만) 지역의 기본 URL 목록을 제공합니다.

우리가 계산 요청 서명 :

은 내가 대신 그때 볼 수 http://webservices.amazon.com를 조회하려고하면 따라서 내 요청은, http://webservices.amazon.co.uk 유효 것이라고 .co.uk에서 지역 내 동료의 계정을 만든 이 (가) 제공된 서명과 일치하지 않습니다. AWS Secret Access Key 및 서명 방법을 확인하십시오. 자세한 내용은 서비스 설명서를 참조하십시오.

amazon.com에 관련 계정이 있다면 기본이라고 생각되는대로 지역을 지정하지 않고 시도하십시오. 위와 별개로 VM이 인터넷에 연결되어 있는지 확인하고 아무 것도 작동하지 않으면 다른 액세스 키를 만들어 사용하십시오.

+0

감사합니다. 이미 해당 assoc 태그를 얻기 위해이 프로세스를 완료했습니다. assoc 액세스 api에는 dsecret 키가 있습니다. 어쩌면 내가 뭔가를 놓친 것일 수도 있지만, 나는 이전에 그 단계들을 따라왔다. –

3

지역과 문제가 있다고 생각합니다. 유효한 값 from here을 선택하십시오. 설명은 AWS가 자격 증명의 유효성을 검사 할 수 있지만 '미국'이 유효한 지역이 아니기 때문에 '실제'전화가 오게되면 실패 할 수 있습니다.

+0

내 경우 영국에서 나는이 일을 내가해야만했다. amazon = AmazonAPI (AMAZON_ACCESS_KEY, AMAZON_SECRET_KEY, AMAZON_ASSOC_TAG, 지역 = "영국") –