欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python中Scrapy框架的簡(jiǎn)介-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的上虞網(wǎng)站建設(shè)公司,上虞接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行上虞網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

小編給大家分享一下Python中Scrapy框架的簡(jiǎn)介,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

Scrapy 框架介紹

Scrapy 是一個(gè)基于 Twisted 的異步處理框架,是純 Python 實(shí)現(xiàn)的爬蟲(chóng)框架,其架構(gòu)清晰,模塊之間的耦合程度低,可擴(kuò)展性極強(qiáng),可以靈活完成各種需求。我們只需要定制開(kāi)發(fā)幾個(gè)模塊就可以輕松實(shí)現(xiàn)一個(gè)爬蟲(chóng)。

1. 架構(gòu)介紹

首先我們來(lái)看下 Scrapy 框架的架構(gòu),如圖 13-1 所示:

Python中Scrapy框架的簡(jiǎn)介

圖 13-1 Scrapy 架構(gòu)

它可以分為如下的幾個(gè)部分。

Engine,引擎,用來(lái)處理整個(gè)系統(tǒng)的數(shù)據(jù)流處理,觸發(fā)事務(wù),是整個(gè)框架的核心。

Item,項(xiàng)目,它定義了爬取結(jié)果的數(shù)據(jù)結(jié)構(gòu),爬取的數(shù)據(jù)會(huì)被賦值成該對(duì)象。

Scheduler, 調(diào)度器,用來(lái)接受引擎發(fā)過(guò)來(lái)的請(qǐng)求并加入隊(duì)列中,并在引擎再次請(qǐng)求的時(shí)候提供給引擎。

Downloader,下載器,用于下載網(wǎng)頁(yè)內(nèi)容,并將網(wǎng)頁(yè)內(nèi)容返回給蜘蛛。

Spiders,蜘蛛,其內(nèi)定義了爬取的邏輯和網(wǎng)頁(yè)的解析規(guī)則,它主要負(fù)責(zé)解析響應(yīng)并生成提取結(jié)果和新的請(qǐng)求。

Item Pipeline,項(xiàng)目管道,負(fù)責(zé)處理由蜘蛛從網(wǎng)頁(yè)中抽取的項(xiàng)目,它的主要任務(wù)是清洗、驗(yàn)證和存儲(chǔ)數(shù)據(jù)。

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

Spider Middlewares, 蜘蛛中間件,位于引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛輸入的響應(yīng)和輸出的結(jié)果及新的請(qǐng)求。

2. 數(shù)據(jù)流

Scrapy 中的數(shù)據(jù)流由引擎控制,其過(guò)程如下:

Engine 首先打開(kāi)一個(gè)網(wǎng)站,找到處理該網(wǎng)站的 Spider 并向該 Spider 請(qǐng)求第一個(gè)要爬取的 URL。

Engine 從 Spider 中獲取到第一個(gè)要爬取的 URL 并通過(guò) Scheduler 以 Request 的形式調(diào)度。

Engine 向 Scheduler 請(qǐng)求下一個(gè)要爬取的 URL。

Scheduler 返回下一個(gè)要爬取的 URL 給 Engine,Engine 將 URL 通過(guò) Downloader Middlewares 轉(zhuǎn)發(fā)給 Downloader 下載。

一旦頁(yè)面下載完畢, Downloader 生成一個(gè)該頁(yè)面的 Response,并將其通過(guò) Downloader Middlewares 發(fā)送給 Engine。

Engine 從下載器中接收到 Response 并通過(guò) Spider Middlewares 發(fā)送給 Spider 處理。

Spider 處理 Response 并返回爬取到的 Item 及新的 Request 給 Engine。

Engine 將 Spider 返回的 Item 給 Item Pipeline,將新的 Request 給 Scheduler。

重復(fù)第二步到最后一步,直到 Scheduler 中沒(méi)有更多的 Request,Engine 關(guān)閉該網(wǎng)站,爬取結(jié)束。

通過(guò)多個(gè)組件的相互協(xié)作、不同組件完成工作的不同、組件對(duì)異步處理的支持,Scrapy 大限度地利用了網(wǎng)絡(luò)帶寬,大大提高了數(shù)據(jù)爬取和處理的效率。

3. 項(xiàng)目結(jié)構(gòu)

Scrapy 框架和 pyspider 不同,它是通過(guò)命令行來(lái)創(chuàng)建項(xiàng)目的,代碼的編寫(xiě)還是需要 IDE。項(xiàng)目創(chuàng)建之后,項(xiàng)目文件結(jié)構(gòu)如下所示:

scrapy.cfg
project/
    __init__.py
    items.py
    pipelines.py
    settings.py
    middlewares.py
    spiders/
        __init__.py
        spider1.py
        spider2.py
        ...

在此要將各個(gè)文件的功能描述如下:

scrapy.cfg:它是 Scrapy 項(xiàng)目的配置文件,其內(nèi)定義了項(xiàng)目的配置文件路徑、部署相關(guān)信息等內(nèi)容。

items.py:它定義 Item 數(shù)據(jù)結(jié)構(gòu),所有的 Item 的定義都可以放這里。

pipelines.py:它定義 Item Pipeline 的實(shí)現(xiàn),所有的 Item Pipeline 的實(shí)現(xiàn)都可以放這里。

settings.py:它定義項(xiàng)目的全局配置。

middlewares.py:它定義 Spider Middlewares 和 Downloader Middlewares 的實(shí)現(xiàn)。

spiders:其內(nèi)包含一個(gè)個(gè) Spider 的實(shí)現(xiàn),每個(gè) Spider 都有一個(gè)文件。

看完了這篇文章,相信你對(duì)Python中Scrapy框架的簡(jiǎn)介有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站題目:Python中Scrapy框架的簡(jiǎn)介-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://chinadenli.net/article42/hhihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航手機(jī)網(wǎng)站建設(shè)外貿(mào)建站網(wǎng)站策劃微信公眾號(hào)網(wǎng)站營(yíng)銷(xiāo)

廣告

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

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