pycurl中的DNS_SERVERS

2 投票
1 回答
1575 浏览
提问于 2025-04-18 09:08

我正在尝试用pycurl来下载一个测试页面,使用不同的解析器。

>>> pycurl.version
'PycURL/7.19.3.1 libcurl/7.35.0 WinSSL'

我试过:

c = pycurl.Curl()
c.setopt(c.DNS_SERVERS, '1.2.3.4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pycurl.error: (4, '')

这个问题在Linux和Windows上都出现了。我哪里做错了呢?

我可以用urllib2来使用不同的解析器吗?

1 个回答

3

来自 http://curl.haxx.se/libcurl/c/libcurl-errors.html

错误 4

CURLE_NOT_BUILT_IN (4)

这个错误表示你请求的某个功能、协议或选项在这个 libcurl 中没有被内置。这是因为在构建 libcurl 的时候,决定不启用这个功能或选项。换句话说,如果你想使用这个功能,你需要重新编译 libcurl。

我猜测底层的 libcurl C 库在编译的时候没有包含 c-ares 库。

要解决这个问题,可能需要自己编译 libcurl,并在配置脚本中启用 c-ares。

另外,urllib2 可能是一个选择,具体可以参考 告诉 urllib2 使用自定义 DNS

撰写回答