1

我的程序冻结有问题,我认为这是由于没有连接到 Poloniex 服务器。如何保持循环urlopen请求直到建立连接?

这是我所拥有的:

elif(command == "returnOrderBook"):
    try:
        ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + command + '&currencyPair=' + str(req['currencyPair'])))
        return json.loads(ret.read())
    except:
        print('no connection')
    else: return None   

主要是:

jsn = None

count = 0;
for pair in pairs:

    while(jsn == None):
        jsn = p.returnMarketTradeHistory (pair)
        if(jsn == None):
            print('jsn failed')    
            sleep(0.3)

我已经检查了时间,我似乎没有违反 Poloniex 的任何过多的数据请求限制。

4

1 回答 1

0

这似乎对我有用。我增加了等待时间,这样它就不会在 IP 被禁止之前轰炸网站。

    wait = 60
    while True:
        try:
            html = urlopen('http://www.example.com')
            wait = 60
            break
        except:
            print('Failed to open page')
            time.sleep(random.sample(range(wait, wait * 2), 1)[0])
            wait = (wait + 300) * 2
            pass
于 2017-09-08T13:49:21.983 回答