PyCurl需要很长时间才能完成

时间:2016-09-22 15:58:20

标签: python performance pycurl

在我的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)上尝试过相同的功能,并且效果很好。

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,正如您在评论中指出的那样,问题是DNS查找需要花费大量时间。我设法通过强制pycurl使用特定的DNS服务器(在这种情况下是Google的)来解决这个问题:

c.setopt(pycurl.DNS_SERVERS, '8.8.8.8')

然而,警告我在执行此代码时看到某些Linux系统崩溃。