python爬蟲可以使用哪些框架

了解python爬蟲可以使用哪些框架?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、吉安ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的吉安網(wǎng)站制作公司

python爬蟲框架概述

爬蟲框架中比較好用的是 Scrapy 和PySpider。pyspider上手更簡單,操作更加簡便,因為它增加了 WEB 界面,寫爬蟲迅速,集成了phantomjs,可以用來抓取js渲染的頁面。Scrapy自定義程度高,比 PySpider更底層一些,適合學(xué)習(xí)研究,需要學(xué)習(xí)的相關(guān)知識多,不過自己拿來研究分布式和多線程等等是非常合適的。

PySpider

PySpider是binux做的一個爬蟲架構(gòu)的開源化實現(xiàn)。主要的功能需求是:

抓取、更新調(diào)度多站點的特定的頁面

需要對頁面進(jìn)行結(jié)構(gòu)化信息提取

靈活可擴(kuò)展,穩(wěn)定可監(jiān)控

pyspider的設(shè)計基礎(chǔ)是:以python腳本驅(qū)動的抓取環(huán)模型爬蟲

通過python腳本進(jìn)行結(jié)構(gòu)化信息的提取,follow鏈接調(diào)度抓取控制,實現(xiàn)最大的靈活性

通過web化的腳本編寫、調(diào)試環(huán)境。web展現(xiàn)調(diào)度狀態(tài)

抓取環(huán)模型成熟穩(wěn)定,模塊間相互獨立,通過消息隊列連接,從單進(jìn)程到多機(jī)分布式靈活拓展

pyspider的架構(gòu)主要分為 scheduler(調(diào)度器), fetcher(抓取器), processor(腳本執(zhí)行):

各個組件間使用消息隊列連接,除了scheduler是單點的,fetcher 和 processor 都是可以多實例分布式部署的。 scheduler 負(fù)責(zé)整體的調(diào)度控制

任務(wù)由 scheduler 發(fā)起調(diào)度,fetcher 抓取網(wǎng)頁內(nèi)容, processor 執(zhí)行預(yù)先編寫的python腳本,輸出結(jié)果或產(chǎn)生新的提鏈任務(wù)(發(fā)往 scheduler),形成閉環(huán)。

每個腳本可以靈活使用各種python庫對頁面進(jìn)行解析,使用框架API控制下一步抓取動作,通過設(shè)置回調(diào)控制解析動作。

Scrapy

Scrapy是一個為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。 可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。

其最初是為了頁面抓取 (更確切來說, 網(wǎng)絡(luò)抓取 )所設(shè)計的, 也可以應(yīng)用在獲取API所返回的數(shù)據(jù)(例如 Amazon Associates Web Services ) 或者通用的網(wǎng)絡(luò)爬蟲。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試

Scrapy主要包括了以下組件:

引擎(Scrapy): 用來處理整個系統(tǒng)的數(shù)據(jù)流處理, 觸發(fā)事務(wù)(框架核心)

調(diào)度器(Scheduler): 用來接受引擎發(fā)過來的請求, 壓入隊列中, 并在引擎再次請求的時候返回. 可以想像成一個URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊列, 由它來決定下一個要抓取的網(wǎng)址是什么, 同時去除重復(fù)的網(wǎng)址

下載器(Downloader): 用于下載網(wǎng)頁內(nèi)容, 并將網(wǎng)頁內(nèi)容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)

爬蟲(Spiders): 爬蟲是主要干活的, 用于從特定的網(wǎng)頁中提取自己需要的信息, 即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續(xù)抓取下一個頁面

項目管道(Pipeline): 負(fù)責(zé)處理爬蟲從網(wǎng)頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當(dāng)頁面被爬蟲解析后,將被發(fā)送到項目管道,并經(jīng)過幾個特定的次序處理數(shù)據(jù)。

下載器中間件(Downloader Middlewares): 位于Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應(yīng)。

爬蟲中間件(Spider Middlewares): 介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應(yīng)輸入和請求輸出。

調(diào)度中間件(Scheduler Middewares): 介于Scrapy引擎和調(diào)度之間的中間件,從Scrapy引擎發(fā)送到調(diào)度的請求和響應(yīng)。

Scrapy運(yùn)行流程大概如下:

首先,引擎從調(diào)度器中取出一個鏈接(URL)用于接下來的抓取

引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,并封裝成應(yīng)答包(Response)

然后,爬蟲解析Response

若是解析出實體(Item),則交給實體管道進(jìn)行進(jìn)一步的處理。

若是解析出的是鏈接(URL),則把URL交給Scheduler等待抓取

感謝各位的閱讀!看完上述內(nèi)容,你們對python爬蟲可以使用哪些框架大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞名稱:python爬蟲可以使用哪些框架
地址分享:http://muchs.cn/article26/pdgsjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站內(nèi)鏈網(wǎng)頁設(shè)計公司、小程序開發(fā)網(wǎng)站制作、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)