pycurl中的DNS_SERVERS
我正在尝试用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