首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两台PC上的相同脚本,只有一台得到HTTP错误400

两台PC上的相同脚本,只有一台得到HTTP错误400
EN

Stack Overflow用户
提问于 2017-02-06 22:33:32
回答 1查看 101关注 0票数 1

我使用瓶颈从亚马逊发出请求,然后用BeautifulSoup解析响应。

我在我的Mac和Raspberry-Pi上都有完全相同的python脚本。

代码语言:javascript
复制
#!/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返回时:

代码语言:javascript
复制
 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上运行脚本。

EN

回答 1

Stack Overflow用户

发布于 2017-02-09 01:41:55

由于多种原因,AWS将标记400个错误请求错误。在我的例子中,由于某些原因,raspberry Pi时间戳与真实时间不同步,因此对amazon的请求被停止。

您可以在这里阅读更多内容AWS Error Codes

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42070262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档