不断请求http数据的最佳方法?

时间:2015-02-09 20:35:49

标签: python httprequest urllib2 urllib3

在Python中从服务器请求常量数据的最佳方法是什么?我已经尝试使用Urllib3但是由于某些原因,一段时间后python脚本停止了。而且我也在尝试urllib2(见下面的代码),但我注意到有时会出现很大的延迟(urllib3没有频繁发生)并且响应时间不是每0.5秒(有时候每次都是6秒)。我该怎么做才能解决这个问题?

import socket
import urllib2
import time

# timeout in seconds
timeout = 10
socket.setdefaulttimeout(timeout)

while True:
    try:
        # this call to urllib2.urlopen now uses the default timeout
        # we have set in the socket module
        req = urllib2.Request('https://www.okcoin.com/api/v1/future_ticker.do?symbol=btc_usd&contract_type=this_week')
        response = urllib2.urlopen(req)
        r = response.read()

        req2 = urllib2.Request('http://market.bitvc.com/futures/ticker_btc_week.js')
        response2 = urllib2.urlopen(req2)
        r2 = response2.read()
    except:
        continue

    print r + str(time.time())
    print r2 + str(time.time())
    time.sleep(0.5)

1 个答案:

答案 0 :(得分:0)

我想我发现了这个问题。我需要保持一个开放的http会话。这样我可以更持续地获得数据。这样做的最佳方法是什么?我做了#34; http = requests.Session()"并立即使用请求。