我尝试使用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中使用不同的解析器吗?
答案 0 :(得分: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可能是一个选项,请参阅Tell urllib2 to use custom DNS