如何关闭WRITEFUNCTION和WRITEDATA?
使用pycurl我有一个叫curlUtil的类。在其中,我有pageAsString(自己,URL),它返回一个字符串。
为此,我设置了WRITEFUNCTION。现在在downloadFile(self,URL,fn,overwrite = 0)中,我执行了open和self.c.Setopt(pycurl.WRITEFUNCTION,0)这会引起问题。 Int不是有效的参数。
然后,我假设WRITEDATA将覆盖该值,否则将出现NOWRITEFUNCTION推荐。 NOWRITEFUNCTION不存在,所以我只用了WRITEDATA而Python崩溃了。
我编写了一个称为reboot()的快速函数,它将关闭curl,再次将其打开,然后调用reset将其置于默认状态。我在pageAsString和downloadFile中都调用它,完全没有问题。但是,我不想重新初始化curl。我可能设置了一些特殊选项。
如何关闭WRITEFUNCTION和WRITEDATA?
最佳答案
使用write函数,而不是关闭它会为您省去很多麻烦。您可能想利用WRITEFUNCTION重写pageAsString。
举个例子:
from cStringIO import StringIO
c = pycurl.Curl()
buffer = StringIO()
c.setopt(pycurl.WRITEFUNCTION, buffer.write)
c.setopt(pycurl.URL, "http://example.com")
c.perform()
...
buffer.getvalue() # will return the data fetched.
关于python - Pycurl WRITEDATA WRITEFUNCTION冲突/崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/294960/