在我的PC(Windows 10 x64)上安装了一个新的干净系统之后,我遇到了python的pycurl lib的一些问题(当然)。
我在Python 2.7和3.4上尝试这个 - 没有任何区别。
我发送请求后需要很长时间才能响应(24secs),无论目标是什么,甚至是'localhost'。
Piece o'code:
import pycurl, time
from io import BytesIO
buf = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://localhost/')
c.setopt(c.WRITEDATA, buf)
t = time.clock()
c.perform()
print("elapsed time: {} sec".format(time.clock() - t))
c.close()
body = buf.getvalue()
我在我的VPS机器(ubuntu)上尝试过相同的功能,并且效果很好。
答案 0 :(得分:3)
我遇到了同样的问题,正如您在评论中指出的那样,问题是DNS查找需要花费大量时间。我设法通过强制pycurl使用特定的DNS服务器(在这种情况下是Google的)来解决这个问题:
c.setopt(pycurl.DNS_SERVERS, '8.8.8.8')
然而,警告我在执行此代码时看到某些Linux系统崩溃。