Home  >  Article  >  Backend Development  >  Briefly talk about Python's pycurl module_python

Briefly talk about Python's pycurl module_python

不言
不言Original
2018-04-08 10:50:471777browse

PycURl is a python binding library for libcurl written in C language. libcurl is a free, easy-to-use URL transport library for client-side applications. Its functions are very powerful. PycURL is a very fast (refer to multiple concurrent operations) and feature-rich, but somewhat complex interface.

pycurl is a libcurl Python implementation written in c language. It is very powerful and supports operation protocols such as FTP, HTTP, HTTPS, TELNET, etc.

Description of common methods of the module:

close() method, corresponding to the curl_easy_cleanup method in the libcurl package, has no parameters, and implements closing and recycling Curl objects.
·Perform() method, corresponding to the curl_easy_perform method in the libcurl package, has no parameters, and implements the submission of Curl object requests.
·setopt(option,value) method corresponds to the curl_easy_setopt method in the libcurl package. The parameter option is specified through the constant of libcurl. The value of the parameter value will depend on the option, which can be a string, integer, or long Type, file object, list or function, etc.

pycurl.Curl() #Create a curl object
c.setopt(pycurl.CONNECTTIMEOUT,5) #Waiting time for the connection, set to 0 to not wait
c.setopt(pycurl.TIMEOUT,5) #Request timeout
c.setopt(pycurl.NOPROGRESS,0) #Whether to block the download progress bar, if not 0, block it
c.setopt(pycurl. MAXREDIRS,5) #Specify the maximum number of HTTP redirects
c.setopt(pycurl.FORBID_REUSE,1) #Forcibly disconnect after completing the interaction and not reuse
c.setopt(pycurl.FRESH_CONNECT,1) # Force to obtain a new connection, that is, replace the connection in the cache
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60) #Set the time to save DNS information, the default is 120 seconds
c.setopt(pycurl.URL,"http ://www.baidu.com") #Specify the requested URL
c.setopt(pycurl.USERAGENT,"Mozilla/5.2(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2 .0.50324)")#Configure the User-Agent that requests the HTTP header
c.setopt(pycurl.HEADERFUNCTION,getheader) #Direct the returned HTTPHEADER to the callback function getheader
c.setopt(pycurl.WRITEFUNCTION,getbody) #Direct the returned content to the callback function getbody
c.setopt(pycurl.WRITEHEADER,fileobj) #Direct the returned HTTPHEADER to the fileobj file object
c.setopt(pycurl.WRITEDATA,fileobj) #Direct the returned The HTML content is directed to the fileobj file object

·getinfo(option) method, corresponding to the curl_easy_getinfo method in the libcurl package. The parameter option is specified through the constant of libcurl

c=pycurl.Curl( ) #Create a curl object
c.getinfo(pycurl.HTTP_CODE) #The returned HTTP status code
c.getinfo(pycurl.TOTAL_TIME) #The total time spent at the end of the transmission
c.getinfo(pycurl .NAMELOOKUP_TIME) #The time consumed by DNS resolution
c.getinfo(pycurl.CONNECT_TIME) #The time consumed by establishing a connection
c.getinfo(pycurl.PRETRANSFER_TIME) #The time consumed from establishing the connection to preparing for transmission
c.getinfo(pycurl.STARTTRANSFER_TIME) #The time consumed from establishing the connection to the start of transmission
c.getinfo(pycurl.REDIRECT_TIME) #The time consumed by redirection
c.getinfo(pycurl.SIZE_UPLOAD) #Upload packet size
c.getinfo(pycurl.SIZE_DOWNLOAD) #Download packet size
c.getinfo(pycurl.SPEED_DOWNLOAD) #Average download speed
c.getinfo(pycurl.SPEED_UPLOAD) #Average upload Speed
c.getinfo(pycurl.HEADER_SIZE) #HTTP header size

Related recommendations:

The above is the detailed content of Briefly talk about Python's pycurl module_python. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn