python爬蟲學習手冊-伺服器渲染(基礎庫pycurl)瞭解

weixin_34128411發表於2018-12-03

前言

今天在下班時候做地鐵,突然想起,我寫這麼多庫會不會讓別人以為我咋咋地,所以我在每個庫的標題後面加了,我對該庫的掌握程度,熟悉,就是經常使用,自己感覺還可以,瞭解就是知道基本的API,使用的頻率相對少一些,好了,進入今天的正題,依舊是一個基礎庫pycurl!
首先,老規矩,我在學習一個新東西時候都會問自己幾個問題!
1.這是什麼?
2.這個東西能幹什麼?
3.這個東西怎麼使用?
那麼我們依次來說下這幾個問題

1.pycurl是什麼?

有這麼一段話

PycURl是一個C語言寫的libcurl的python繫結庫。libcurl 是一個自由的,並且容易使用的用在客戶端的 URL 傳輸庫。它的功能很強大,PycURL 是一個非常快速(參考多併發操作)和豐富完整特性的,但是有點複雜的介面。如果你需要些簡單或純的模組,你可以參考一下 urllib2 或 urlgrabber

這段話裡面出現的libcurl又是什麼呢?
libcurl百度百科,如果沒看懂,那沒關係,我給你翻譯一下,這就是個用C語言寫的請求庫,支援多種協議,也支援多種操作,像什麼Cookie、代理、表單提交之類的
那麼PycURl和libcurl又是什麼關係呢?簡單來說PycURL就是libcurl在python裡的封裝,也就是python版的libcurl,這下懂了吧,明確了敵人是誰那就簡單了!

2.pycurl能幹什麼?

pycurl支援如下功能

在PyCURL的主頁上介紹的支援的功能有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE、proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling!

我們可以看到pycurl基本支援所有的請求庫的功能,如果你不想知道他是怎麼使用的好 urlliburllib3這倆選一個都能實現你所需要的功能!
但是如果你想了解了解自己還不知道的東西,那麼就繼續向下看!

3.pycurl怎麼使用?

1.安裝pycurl

pip install pycurl

2.匯入pycurl

import pycurl

3.pycurl基本使用

curl=pycurl.Curl

需要一個curl物件,所以第一步先建立curl物件

import pycurl
url='https://www.baidu.com/'
c=pycurl.Curl#需要一個curl物件,所以第一步先建立curl物件
c.setopt(pycurl.URL,"https://www.baidu.com/")#發起請求
設定請求頭
c.setopt(pycurl.USERAGENT,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36")
c.setopt(pycurl.URL,url)
c.setopt(pycurl.CONNECTTIMEOUT,5)#設定連線等待時間
c.setopt(pycurl.NOPROGRESS,0)#下載進度條,非0時候不顯示
c.setopt(pycurl.MAXREDIRS,3)#最大重定向次數
c.getinfo(pycurl.HTTP_CODE)#返回請求狀態碼碼
c.getinfo(pycurl.TOTAL_TIME)#顯示傳輸結束需要的時間
c.getinfo(pycurl.SIZE_UPLOAD)#顯示上傳資料包大小
c.getinfo(pycurl.SIZE_DOWNLOAD)#顯示下載資料包大小
c.getinfo(pycurl.SPPEED_DOWNLOAD)#顯示下載速度
c.getinfo(pycurl.SPEED_UPLOAD)#顯示上傳速度
c.getinfo(pycurl.HEADER_SIZE)#顯示資料包頭部大小

後記

其他更詳細的請參考pycurl
例子請參考pycur例子
pycurl官方文件
github上的pycurl

相關文章