libcurl
.
PycURL can be used to fetch objects identified by a URL
from a Python program, similar to the
urllib
Python module.
PycURL is mature, very fast, and supports a lot of features.
libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3 and RTSP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more!
fast
,
thoroughly documented
and is already used by many known, big and successful
companies
and numerous
applications
.
PycURL is targeted at an advanced developer - if you need dozens of
concurrent, fast and reliable connections or any of the sophisticated
features listed above then PycURL is for you.
The main drawback of PycURL is that it is a relatively thin layer over
libcurl without any of those nice Pythonic class hierarchies.
This means it has a somewhat steep learning curve unless you
are already familiar with libcurl's C API.
To sum up, PycURL is very fast (especially for multiple concurrent operations)
and very feature rich, but has a somewhat complex interface.
If you need something simpler or prefer a pure Python
module you might want to check out
urllib2
,
requests
and
urlgrabber
.
Documentation
PycURL includes extensive
API documentation
as well as a number of test and example scripts in the
tests
and
examples
directories of the distribution.
The real info, though, is located in the
libcurl documentation
,
most important being
curl_easy_setopt
.
libcurl tutorial
also provides a lot of useful information.
For a quick start have a look at the high-performance URL downloader
retriever-multi.py
.
For a list of changes consult the
PycURL ChangeLog
.
Download
Download
PycURL sources version 7.45.3 (Feb 17 2024) or try
the code from
the Git repository
.
Also, official PycURL packages are available for
Ubuntu
,
Debian GNU/Linux
,
FreeBSD
,
Gentoo Linux
,
NetBSD
,
and
OpenBSD
.
Community
If you want to ask questions or discuss PycURL related issues, our
mailing list
is the place to be.
Mailing list
archives
are available for your perusal.
Bugs
and
patches
are tracked
on GitHub.
If your patch or proposal is non-trivial, please discuss it on
the mailing list before submitting code.
Older bugs and patches can be found on the
issues
and
pull requests
pages
for the temporary Git import repository on Github, and on the
PycURL SourceForge
project page.
The libcurl library also has its own
mailing lists
.
License
PycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the cURL license. You can redistribute and/or modify PycURL
according to the terms of either license.