[spider] 爬蟲框架scrapy介紹

我們一般比較常用的爬蟲而且比較強(qiáng)大的框架。今天就簡單的介紹一下爬蟲的框架--scrapy。
首先去看一下他的架構(gòu)流程。


爬蟲框架結(jié)構(gòu)圖

他可以分為以下幾個(gè)部分來協(xié)同工作。

引擎(Scrapy Engine)
用來處理整個(gè)系統(tǒng)的數(shù)據(jù)流, 觸發(fā)事務(wù),是整個(gè)框架的核心。通過他的處理,來實(shí)現(xiàn)整個(gè)框架的正常工作。

調(diào)度器(Scheduler)
用來接受引擎發(fā)過來的請(qǐng)求, 傳入隊(duì)列中, 并在引擎再次請(qǐng)求的時(shí)候返回. 可以想像成一個(gè)URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊(duì)列, 由它來決定下一個(gè)要抓取的網(wǎng)址是什么, 同時(shí)比較強(qiáng)大的功能就是:可以對(duì)以前已經(jīng)抓取過得鏈接進(jìn)去重。

下載器(Downloader)
用于下載網(wǎng)頁內(nèi)容, 并將網(wǎng)頁內(nèi)容返回給Spider(Scrapy下載器是建立在twisted這個(gè)高效的異步模型上的),其實(shí)是將抓取的內(nèi)容返回給引擎,引擎然后將網(wǎng)站的內(nèi)容返回給spider。spider將內(nèi)容進(jìn)行解析。提取有用的數(shù)據(jù)或者進(jìn)行下一步的抓取,或者將數(shù)據(jù)結(jié)構(gòu)化給pipeline。

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

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

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

爬蟲中間件(Spider Middlewares)
介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應(yīng)輸入和請(qǐng)求輸出。在這兒我們可以設(shè)置一些爬蟲的UA池,或者代理池。

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

目錄介紹:


scrapy框架展示

文件目錄介紹:
scrapy.cfg
它是項(xiàng)目的配置文件,定義了一些文件的路徑,以及相關(guān)信息內(nèi)容。一半不會(huì)去修改其內(nèi)部的配置內(nèi)容。

pipeline.py
這里的所有的文件朱勇用于來處理item定義的字段,通過這個(gè)可以用來處理有效的信息。這樣我們就可以將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫或者存儲(chǔ)到文件中。

middlewares.py
這是一個(gè)中間件文件,這里定義了下載中間件和爬蟲中間件的方式。

items.py
這里定義了我們一些字段需要在pipeline中的內(nèi)容。

DQD.py
爬蟲的文件就在這兒寫、在這兒有回調(diào)的方法。每一個(gè)scrapy的項(xiàng)目中都有這個(gè)文件。

通過這個(gè)項(xiàng)目我們可以來看到大概的流程。然后具體的項(xiàng)目具體的去分析。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 說起寫爬蟲,大多數(shù)第一時(shí)間想到的就是python了。python語法簡潔明了,加上及其豐富好用的庫,用它來寫爬蟲有...
    瘋狂的哈丘閱讀 8,361評(píng)論 1 15
  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 13,084評(píng)論 4 46
  • NVC的核心本質(zhì)是基于需要的意識(shí)。需要為我們提供生命能量! 安寧是內(nèi)心的寧靜,它是自由、流動(dòng)的! 安寧對(duì)于我來說,...
    左手成長右手育兒閱讀 213評(píng)論 0 1
  • 怎能將你忘記,是我心中難以磨滅的印跡,只有將你埋葬于內(nèi)心的絕情谷底。日復(fù)一日,年復(fù)一年,不再想起。你我的命運(yùn)都逃不...
    我是老崔閱讀 334評(píng)論 0 0
  • Mac下mysql安裝完成后,并沒有卸載文件,只能自己卸載 首先需要停止mysql的有關(guān)進(jìn)程然后逐一執(zhí)行代碼,徹底...
    42chaos閱讀 910評(píng)論 0 1

友情鏈接更多精彩內(nèi)容