继续尝试urlopen直到建立连接 - Python 2

时间:2017-07-13 14:54:25

标签: python-2.7 try-catch urllib2 urlopen poloniex

我的程序冻结有问题,我认为这是因为没有连接到Poloniex服务器。如何在建立连接之前保持循环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)

主要是:

Rec not needed-1
Rec not needed-2
Rec not needed-n
start
Record-1
Record-2
Record-n

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

1 个答案:

答案 0 :(得分:0)

这似乎对我有用。我增加了等待时间,这样它就不会轰炸网站,直到知识产权被禁止为止。

    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