2015-07-04 10 views
5

मैं इस दिन के बेहतर हिस्से के लिए रहा हूं लेकिन कुछ समय के लिए उसी त्रुटि 400 के साथ आ रहा हूं। असल में, एप्लिकेशन का लक्ष्य अमेज़ॅन रेफ़रल यूआरएल से किसी पुस्तक के आईएसबीएन को पार्स करना है और इसे अमेज़ॅन के उत्पाद विज्ञापन API से छवियों को खींचने के लिए संदर्भ कुंजी के रूप में उपयोग करना है। वेबपृष्ठ पायथन 3.4 और Django 1.8 में लिखा गया है। मैंने यहां कुछ समय बिताया और पाइथन-अमेज़ोन-सरल-उत्पाद-एपीआई का उपयोग करने के लिए बस गए क्योंकि यह अमेज़ॅन से पार्सिंग परिणाम थोड़ा आसान बना देगा।पाइथन-अमेज़ॉन-सरल-उत्पाद-एपीआई के साथ त्रुटि 400 पाइथनोनियर

जवाब की तरह: How to use Python Amazon Simple Product API to get price of a product

यह बहुत सरल प्रतीत बनाओ, लेकिन मैं काफी यह एक उत्पाद देखने के लिए सफलतापूर्वक अभी तक नहीं मिला है। यहां पर सही ISBN पहले से ही भरा साथ क्या मेरी विधि आमतौर पर करता है की एक सांत्वना प्रिंटआउट दिया गया है:

>>> from amazon.api import AmazonAPI 
>>> access_key='amazon-access-key' 
>>> secret ='amazon-secret-key' 
>>> assoc ='amazon-associate-account-name' 
>>> amazon = AmazonAPI(access_key, secret, assoc) 
>>> product = amazon.lookup(ItemId='1632360705') 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/amazon/api.py", line 161, in lo 
okup 
    response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs) 
    File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 242, i 
n __call__ 
    {'api_url': api_url, 'cache_url': cache_url}) 
    File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 203, i 
n _call_api 
    return urllib2.urlopen(api_request, timeout=self.Timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python3.4/urllib/request.py", line 461, in open 
    response = meth(req, response) 
    File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python3.4/urllib/request.py", line 499, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python3.4/urllib/request.py", line 579, in http_error_default 
    raise HTTPError(req.full_url, code, msg, hdrs, fp) 
urllib.error.HTTPError: HTTP Error 400: Bad Request 

अब मुझे लगता है कि मैं उत्सुक हूँ अगर यह PythonAnywhere के साथ कुछ मोड़ है, या अगर मैं नहीं छूटा है एक विन्यास में स्थापित करने Django? जहां तक ​​मैं एडब्ल्यूएस और अमेज़ॅन एसोसिएट्स पेज के माध्यम से बता सकता हूं कि मेरी चाबियां सही हैं। मैं इस बिंदु पर पार्सिंग के बारे में बहुत चिंतित नहीं हूं, बस वस्तु प्राप्त कर रहा हूं। मैंने एपीआई को बाईपास करने और बस बोटलोज़ (जिसे एपीआई विस्तारित करता है) का उपयोग करने का प्रयास किया है, लेकिन मुझे एक ही त्रुटि 400 परिणाम मिलती है।

मैं वास्तव में Django और अमेज़ॅन के एपीआई के लिए नया हूं, किसी भी सहायता की सराहना की जाएगी!

+2

पर जा सकते हैं अमेज़ॅन आपको 'खराब अनुरोध' त्रुटि के साथ जवाब दे रहा है। मतलब, आप शायद गलत जानकारी भेज रहे हैं। अपनी चाबियाँ आदि को दोबारा जांचें ... – Incognos

उत्तर

10

आपने अभी भी एपीआई एक्सेस के लिए अपने खाते को अधिकृत नहीं किया है। ऐसा करने के लिए, आप https://affiliate-program.amazon.com/gp/advertising/api/registration/pipeline.html

+1

आप बिल्कुल सही थे, इस आसान कदम को जानने में मदद के लिए धन्यवाद! देर से अनुमोदन के लिए मैं क्षमा चाहता हूं। – tsuko

+0

एक और समस्या जो एक ही त्रुटि का कारण हो सकती है जब आपके पास एकाधिक AWS खाते होते हैं और आप संबद्ध प्रोग्राम के लिए पंजीकृत एक से अलग ईमेल के साथ पंजीकृत खाते के लिए एपीआई कुंजी का उपयोग कर रहे हैं। – drcursor

+0

मुझे पता है कि उत्तर के बाद से यह काफी समय हो गया है लेकिन एक और बिंदु यह हो सकता है कि एपीआई .com डोमेन के लिए देखे। तो यदि आप .co.uk या .de में देख रहे हैं तो आपको पहले क्षेत्र निर्दिष्ट करना होगा। – Nick

संबंधित मुद्दे