PycURL is a Python interface to libcurl, the multiprotocol file transfer library. Similarly to the urllib Python module, PycURL can be used to fetch objects identified by a URL from a Python program. Beyond simple fetches however PycURL exposes most of the functionality of libcurl, including:
- Speed - libcurl is very fast and PycURL, being a thin wrapper above libcurl, is very fast as well. PycURL was benchmarked to be several times faster than requests.
- Features including multiple protocol support, SSL, authentication and proxy options. PycURL supports most of libcurl's callbacks.
- Multi and share interfaces.
- Sockets used for network operations, permitting integration of PycURL into the application's I/O loop (e.g., using Tornado).
This is a modified version of pycurl that adds access to the extra impersonate function defined in curl-impersonate from python. Allowing you to impersonate any browser TLS and headers.
- Python 3.5-3.10.
- libcurl 7.19.0 or better.
Please see `INSTALL.rst`_ for installation instructions. .. _INSTALL.rst: http://pycurl.io/docs/latest/install.html
Documentation for the development version of PycURL is available here.
To build documentation from source, run make docs
.
Building documentation requires Sphinx to
be installed, as well as pycurl extension module built as docstrings are
extracted from it. Built documentation is stored in build/doc
subdirectory.
For curl-impersonate linked issues, feel free to open a github issue, but I do not know if I will have the time to work on this project in the future.
Copyright (C) 2001-2008 by Kjetil Jacobsen <kjetilja at gmail.com> Copyright (C) 2001-2008 by Markus F.X.J. Oberhumer <markus at oberhumer.com> Copyright (C) 2013-2022 by Oleg Pudeyev <code at olegp.name> All rights reserved. PycURL is dual licensed under the LGPL and an MIT/X derivative license based on the cURL license. A full copy of the LGPL license is included in the file COPYING-LGPL. A full copy of the MIT/X derivative license is included in the file COPYING-MIT. You can redistribute and/or modify PycURL according to the terms of either license.