import sys import pycurl
class Test: def init(self): self.contents = ”
def body_callback(self, buf): self.contents = self.contents + buf
print >>sys.stderr, ‘Testing’, pycurl.version
t = Test() c = pycurl.Curl() c.setopt(c.URL, ’http://curl.haxx.se/dev/’) c.setopt(c.WRITEFUNCTION, t.body_callback) c.setopt(c.HTTPHEADER, [“I-am-a-silly-programmer: yes indeed you are”, “User-Agent: Python interface for libcURL”]) c.perform() c.close()
A 2 minute look at this example and you know what’s going on - make a new curl object, go to the following url, and when we’re downloading data from that location, use a small class as a data store. When we’re done, print the contents of our data store.
It just made sense, even if it feels very C like (which makes sense - it’s based on a C API after all.
Plus, Python modules are usually a lot easier to install than C++ code (especially when
make gives cryptic error messages -
gcc: no input files or some such.) when trying to compile them.)