




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Pycurl的簡(jiǎn)單使用和比較荒唐的退場(chǎng)幾次后,我終于放棄了一點(diǎn),開始嘗試其他模塊。我看到很多人推薦wget和pylol。Wget是獨(dú)立軟件,因此沒有考慮。Pycoll的強(qiáng)大curl性能(基于c語(yǔ)言開發(fā))廣泛反映了高效、可靠和強(qiáng)大的功能。所以決定嘗試它。簡(jiǎn)單地(見下文)比較,pycur消耗的時(shí)間比urllib2少得多。這在爬行動(dòng)物身上累積后給人留下了很深的印象。PycURL是一個(gè)非??焖?引用多并發(fā))、豐富、完整的功能,但有點(diǎn)復(fù)雜的界面。如果需要簡(jiǎn)單或純粹的python模塊,可以參閱urllib2或urlgrabber。通過http:/PycURL./了解有關(guān)pyu
2、rl的文檔信息和其他信息。PycURL是libcurl的包,因此還需要對(duì)c的libcurl的引用。安裝Pycurl獲取和安裝Libcurl非常簡(jiǎn)單,具體取決于運(yùn)行的Linux版本,如果使用Ubuntu,則只需安裝ap-get即可。$ sudo apt-getlibcurl3$ sudo apt-get python-pytcurl要檢查以下系統(tǒng)上的pycurl版本信息,可以執(zhí)行以下操作:1 import pycurl2 pycurl.version3 lib curl/7 . 19 . 7 gnutls/2 . 8 . 5 zlib/1 . 2 . 3 . 3 lib IDN/1.15如上所示
3、,我系統(tǒng)上的libcurl是7.19.7的最新版本。使用Pycurl:Pycurl。Curl() -Curlobject此函數(shù)是對(duì)應(yīng)于libCURL的CURL處理器的Curl對(duì)象。自動(dòng)設(shè)置curl對(duì)象CURLOPT_VERBOSE為0,curl opt _ no progress為1,默認(rèn)CURLOPT_USERAGENT和設(shè)置CURLOPT_ERRORBUFFER指向個(gè)人錯(cuò)誤緩沖區(qū)。py coll . curlsion()-curlmultiobject此函數(shù)創(chuàng)建與libcurl的CURLM處理器相對(duì)應(yīng)的新CurlMulti對(duì)象。py coll . curlshareobject()-cur
4、lshareobject此函數(shù)是對(duì)應(yīng)于libCurl的CURLSH處理器的新CurlShare對(duì)象。創(chuàng)建curlchare對(duì),然后從curl對(duì)象傳遞SHARE選項(xiàng)參數(shù)。繼續(xù)其中:Curl對(duì)象具有以下方法:Close()-None對(duì)應(yīng)于libCurl的curl_easy_cleanup方法。不再引用curl對(duì)象時(shí),將自動(dòng)調(diào)用此方法,但也可以直接調(diào)用此方法。Perform()-None對(duì)應(yīng)于libcurl的curl_easy_perform方法。Setopt(option,value)-None對(duì)應(yīng)于libcurl的curl_easy_setopt方法,option是使用libcurl的CURLO
5、PT_*常量指定的。但是,CURLOPT_前綴現(xiàn)在取決于option。value的數(shù)據(jù)類型可以是字符串、整數(shù)、長(zhǎng)整數(shù)、文件對(duì)象、列表或函數(shù)。Example usage:拿來咸菜C=pycurl。Curl()C.setopt (pycoll.url, /)C.setopt (pyurl.httpheader, accept 3360 )Import StringIOB=StringIO。StringIO()C.setopt (pyurl.write function,b.write)C.setopt (pycoll.follow location,1)C.
6、setopt (pyurl.maxredirs,5)C.perform()Print b.getvalue()Getinfo(option)-Result對(duì)應(yīng)于libcurl的curl_easy_getinfo方法,option是使用libcurl的CURLOPT_*常量指定的。但是,CURLOPT_前綴現(xiàn)在已刪除。Result包含指定的整數(shù)、浮點(diǎn)數(shù)或字符串,因?yàn)樵谡{(diào)用或完成指定的option.getinfo方法之前,不能調(diào)用該方法。Example usage:拿來咸菜C=pycurl。Curl()C.setopt (pyurl.url, )C.setopt (pyc
7、oll.follow location,1)C.perform()Printc.getinfo (pyurl.http _ code),c.getinfo (pyurl.effective _ URL).-200 /Errstr()-String從此處理器返回內(nèi)部libcurl錯(cuò)誤緩沖區(qū)的字符串表示形式。其他的以后再翻譯。Urilib2 vspyl的簡(jiǎn)單比較導(dǎo)入U(xiǎn)rl布局,然后使用urllib2和pycurl導(dǎo)入頁(yè)面內(nèi)容,并計(jì)算每個(gè)頁(yè)面所用的時(shí)間。最后比較平均時(shí)間。我跑來這里,相關(guān)資料如下。pycurl可能比urllib2節(jié)省20%以上的時(shí)間。1: u
8、rllib2平均時(shí)間:0。pycurl平均時(shí)間:0。2330urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。3: urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。4: urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。5: urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。6: urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。7: urllib2平均時(shí)間:0。pycurl平均時(shí)間:0。相關(guān)代碼如下:1: #coding=utf-82: import OS3: import datetime as dt4: import time5: import urllib26:
9、import pycurl7: import cstring io as stringio8:比較Pycurl和urllib2效率的9:測(cè)試程序103360橘子2010.12.05一只11:12:13: deffetch _ URL(menu URL= ):從14: URL導(dǎo)入目錄頁(yè)內(nèi)容。返回頁(yè)面內(nèi)容字符串15:使用urllib2實(shí)現(xiàn)16:17: the_page= 18: try:19: #下載頁(yè)面2033 360 req=urllib 2 . request(menu URL)213360 req . add _ header(user-agent,Mozilla/5.0(windows;
10、u;Windows NT 6.1zh-CN;RV :1 . 9 . 2 . 12)gecko/Firefox/3 . 6 . 12)22: #設(shè)置超時(shí)2: response=urllib 2 . urlopen(req,timeout=30)24: the_page=response.read()253360 exception,e2:263360 crawler log( fetch _ URL(): error 43360% s;menuurl :% s“%”(e,menurl)27: return the_page28:29: deffetch _ URL 2(menu URL= ):從
11、303360 URL導(dǎo)入目錄頁(yè)內(nèi)容。返回頁(yè)面內(nèi)容字符串313360使用pycurl實(shí)現(xiàn)32:33: the_page= 34: try:35: #下載頁(yè)面36: req=pycurl。Curl()37:req.setopt (pyurl.url,menu URL)38: #設(shè)置超時(shí)39: req . setopt(pyurl . time out,30)403360fp=stringio.stringio()41: req . setopt(pyurl . write function,fp.write)423360 req . setopt(pyurl . user agent,Mozill
12、a/5.0(windows;u;Windows NT 6.1zh-CN;RV :1 . 9 . 2 . 12)gecko/Firefox/3 . 6 . 12)43: req.perform()44: the_page=fp.getvalue()45: exception,e:46: crawler log( fetch _ URL(): error 5553360% s;menuurl :% s“%”(e,menurl)47: return the_page48:49: def爬行者程式(doc):保存503360日志51:52: logfile=u 。/crawler _ error.log53: try:54: out=open(日志文件,“a”)55: out.write(位于dt.datetime.now () doc中的“time :% s % s n”%)56: exception,e:57: print“error :% s”% e58: finally:59: out.close()60:61: def url_vs_curl():62: print start:,dt.datetime.now()63: import timeit64: link=http:/www . B/,,3358
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)汽車用鉛酸蓄電池行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資規(guī)劃研究建議報(bào)告
- 信息技術(shù)-通信行業(yè)行業(yè)深度報(bào)告:太空算力:打破傳統(tǒng)地天觀重構(gòu)天基智能版圖
- 健康牙齒課件
- 2025年高等教育數(shù)字化研究分析報(bào)告
- 營(yíng)銷管理部?jī)?nèi)部管理辦法
- 蔡甸區(qū)濕地公園管理辦法
- 蚌埠市街區(qū)經(jīng)營(yíng)管理辦法
- 證監(jiān)會(huì)融資融券管理辦法
- 衢江區(qū)土地整治管理辦法
- 規(guī)劃及計(jì)劃管理暫行辦法
- 【超星爾雅學(xué)習(xí)通】經(jīng)濟(jì)學(xué)原理(下):全球視角(復(fù)旦大學(xué))網(wǎng)課章節(jié)答案
- GB/T 2918-1998塑料試樣狀態(tài)調(diào)節(jié)和試驗(yàn)的標(biāo)準(zhǔn)環(huán)境
- GB/T 18391.6-2009信息技術(shù)元數(shù)據(jù)注冊(cè)系統(tǒng)(MDR)第6部分:注冊(cè)
- 2023年遼寧省農(nóng)業(yè)信貸融資擔(dān)保有限責(zé)任公司招聘筆試題庫(kù)及答案解析
- 材料封樣驗(yàn)收清單
- 鑄造作業(yè)指導(dǎo)書
- 邊坡噴護(hù)檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- 三菱電機(jī)FX-PLC自動(dòng)化培訓(xùn)課件(完整版)
- 數(shù)據(jù)中心搬遷方案
- 概預(yù)算審核實(shí)施方案
- 連續(xù)油管工藝技術(shù)
評(píng)論
0/150
提交評(píng)論