2017-02-06 1 views
1

私はAmazonからリクエストを作成し、次にBeautifulSoupで応答を解析するのにbottlenoseを使用しています。2台のPCの同じスクリプトで、1つのみがHTTPエラー400を取得します。

私のMacとRaspberry-Piには全く同じpythonスクリプトがあります。

#!/usr/bin/python 
import sys 
import ids 
import csv 
import bottlenose as BN 
import lxml 
import datetime 
import os 
from bs4 import BeautifulSoup 
import numpy 
import time 
from urllib2 import HTTPError 


def error_handler(err): 
    ex = err['exception'] 
    if isinstance(ex, HTTPError) and ex.code == 503: 
     time.sleep(random.expovariate(0.1)) 
     return True 

amazon = BN.Amazon(AWSKEY,AWSSECRET,AWSID,Region='UK',     MaxQPS=0.8, ErrorHandler=error_handler) 

isbnclean = '0521663962' 

response = amazon.ItemLookup(ItemId=isbnclean, ResponseGroup="Large") 
print response 
print 'Test Done' 

だから、このスクリプトは、私のMac上で完璧に実行し、応答を印刷しますが、R-Piは返しになります、

File "SimpleTest.py", line 24, in <module> 
    response = amazon.ItemLookup(ItemId=isbnclean,  ResponseGroup="Large") 
    File "/usr/local/lib/python2.7/dist-packages/bottlenose/api.py", line 265, in __call__ 
    {'api_url': api_url, 'cache_url': cache_url}) 
    File "/usr/local/lib/python2.7/dist-packages/bottlenose/api.py", line 226, in _call_api 
    return urllib2.urlopen(api_request, timeout=self.Timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 437, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 550, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 475, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 558, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 400: Bad Request 

異なり唯一のことは、それはR-PIでありますfrom urllib2 import HTTPErrorは必須ですが、Macでは実行されません。 R-Piでスクリプトを完璧に動かすことができたので、どこが間違っているのか分かりません。

答えて

-1

AWSは複数の理由で400個の不正なリクエストエラーにフラグを立てます。 私のケースでは、ラズベリーパイタイムスタンプは何らかの理由で真の時間と同期しておらず、そのためアマゾンに対する要求は止められました。

関連する問題