Python中的CURL PycURL使用例子
更新時(shí)間:2014年06月01日 22:43:59 作者:
這篇文章主要介紹了Python中的CURL PycURL使用例子,需要的朋友可以參考下
在Linux上有個(gè)常用的命令 curl(非常好用),支持curl的就是大名鼎鼎的libcurl庫(kù);libcurl是功能強(qiáng)大的,而且是非常高效的函數(shù)庫(kù)。libcurl除了提供本身的C API之外,還有多達(dá)40種編程語(yǔ)言的Binding,這里介紹的PycURL就是libcurl的Python binding。
在Python中對(duì)網(wǎng)頁(yè)進(jìn)行GET/POST等請(qǐng)求,當(dāng)需要考慮高性能的時(shí)候,libcurl是非常不錯(cuò)的選擇,一般來說會(huì)比liburl、liburl2快不少,可能也會(huì)比Requests的效率更高。特別是使用PycURL的多并發(fā)請(qǐng)求時(shí),更是效率很高的。個(gè)人感覺,其唯一的缺點(diǎn)是,由于是直接調(diào)用的是libcurl C庫(kù),PycURL的函數(shù)接口之類的還和C中的東西很像,可能不是那么的Pythonic,寫代碼的學(xué)習(xí)曲線稍微比liburl高一點(diǎn)兒。
還是看個(gè)簡(jiǎn)單的例子吧:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on Dec 15, 2013
@author: Jay
'''
import sys
import pycurl
import time
class Test:
def __init__(self):
self.contents = ''
def body_callback(self, buf):
self.contents = self.contents + buf
sys.stderr.write("Testing %s\n" % pycurl.version)
start_time = time.time()
url = 'http://www.dianping.com/shanghai'
t = Test()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.perform()
end_time = time.time()
duration = end_time - start_time
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
c.close()
print 'pycurl takes %s seconds to get %s ' % (duration, url)
print 'lenth of the content is %d' % len(t.contents)
#print(t.contents)
在Python中對(duì)網(wǎng)頁(yè)進(jìn)行GET/POST等請(qǐng)求,當(dāng)需要考慮高性能的時(shí)候,libcurl是非常不錯(cuò)的選擇,一般來說會(huì)比liburl、liburl2快不少,可能也會(huì)比Requests的效率更高。特別是使用PycURL的多并發(fā)請(qǐng)求時(shí),更是效率很高的。個(gè)人感覺,其唯一的缺點(diǎn)是,由于是直接調(diào)用的是libcurl C庫(kù),PycURL的函數(shù)接口之類的還和C中的東西很像,可能不是那么的Pythonic,寫代碼的學(xué)習(xí)曲線稍微比liburl高一點(diǎn)兒。
還是看個(gè)簡(jiǎn)單的例子吧:
復(fù)制代碼 代碼如下:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on Dec 15, 2013
@author: Jay
'''
import sys
import pycurl
import time
class Test:
def __init__(self):
self.contents = ''
def body_callback(self, buf):
self.contents = self.contents + buf
sys.stderr.write("Testing %s\n" % pycurl.version)
start_time = time.time()
url = 'http://www.dianping.com/shanghai'
t = Test()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.perform()
end_time = time.time()
duration = end_time - start_time
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
c.close()
print 'pycurl takes %s seconds to get %s ' % (duration, url)
print 'lenth of the content is %d' % len(t.contents)
#print(t.contents)
您可能感興趣的文章:
- 解決python3 安裝完P(guān)ycurl在import pycurl時(shí)報(bào)錯(cuò)的問題
- Yum中報(bào)錯(cuò):“pycurl.so: undefined symbol: CRYPTO_num_locks”的問題排查
- Python安裝pycurl失敗的解決方法
- Linux下遇到PyCurl的錯(cuò)誤解決方法
- Python基于PycURL自動(dòng)處理cookie的方法
- Python基于PycURL實(shí)現(xiàn)POST的方法
- python中pycurl庫(kù)的用法實(shí)例
- 安裝pycurl報(bào)錯(cuò)Could not run curl-config: 'curl-config'
相關(guān)文章
符合語(yǔ)言習(xí)慣的 Python 優(yōu)雅編程技巧【推薦】
Python最大的優(yōu)點(diǎn)之一就是語(yǔ)法簡(jiǎn)潔,好的代碼就像偽代碼一樣,干凈、整潔、一目了然。這篇文章給大家介紹Python 優(yōu)雅編程技巧,感興趣的朋友跟隨小編一起看看吧2018-09-09
Python 實(shí)現(xiàn)字符串中指定位置插入一個(gè)字符
下面小編就為大家分享一篇Python 實(shí)現(xiàn)字符串中指定位置插入一個(gè)字符,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程
這篇文章主要介紹了使用Python中PDB模塊中的命令來調(diào)試Python代碼的教程,包括設(shè)置斷點(diǎn)來修改代碼等、對(duì)于Python團(tuán)隊(duì)項(xiàng)目工作有一定幫助,需要的朋友可以參考下2015-03-03
vscode和Anaconda安裝以及相關(guān)環(huán)境配置指南
Anaconda是一個(gè)開源的python發(fā)行版本,是現(xiàn)在比較流行的python數(shù)據(jù)科學(xué)平臺(tái),可以對(duì)python的科學(xué)包做到有效管理,這篇文章主要給大家介紹了關(guān)于vscode和Anaconda安裝以及相關(guān)環(huán)境配置指南的相關(guān)資料,需要的朋友可以參考下2023-11-11
淺析python 定時(shí)拆分備份 nginx 日志的方法
本文給大家分享python 定時(shí)拆分備份 nginx 日志的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-04-04
python區(qū)塊鏈地址的簡(jiǎn)版實(shí)現(xiàn)
這篇文章主要為大家介紹了python區(qū)塊鏈地址的簡(jiǎn)版實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
PyQt5 實(shí)現(xiàn)字體大小自適應(yīng)分辨率的方法
今天小編就為大家分享一篇PyQt5 實(shí)現(xiàn)字體大小自適應(yīng)分辨率的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06

