中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

scrapy和python的關系是什么

發布時間:2020-09-21 11:32:22 來源:億速云 閱讀:503 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關scrapy和python的關系是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Scrapy是Python開發的一個快速、高層次的web數據抓取框架,用于抓取web站點并從頁面中提取結構化的數據。Scrapy用途廣泛,可以用于數據挖掘和監測。

Scrapy吸引人的地方在于它是一個框架,任何人都可以根據需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等。

Scrapy算得上是Python世界中最常用的爬蟲框架了,同時它也是我掌握的幾種流行語言中最好的爬蟲框架,沒有之一!我認為它也是最難學習的框架,同樣沒有之一。很多初學Scarpy的經常向我抱怨完全不清楚Scrapy該怎樣入手,即使看的是中文的文檔,也感到很難理解。我當初接觸Scrapy時也有這樣的感覺。之所以感到Scrapy難學,究其原因,是其官方文檔實在太過凌亂,又缺少實用的代碼例子,讓人看得云里霧里,不知其所已然。雖然其文檔不良,但卻沒有遮擋住它的光輝,它依然是Python世界中目前最好用的爬蟲框架。其架構的思路、蜘蛛執行的效能,還有可擴展的能力都非常出眾,再配以Python語言的簡潔輕巧,使得爬蟲的開發事半功倍。

Scrapy的優點:

(1)提供了內置的HTTP緩存,以加速本地開發。

(2)提供了自動節演調節機制,而且具有遵守robots.txt的設置的能力。

(3)可以定義爬行深度的限制,以避免爬蟲進入死循環鏈接。

(4)會自動保留會話。

(5)執行自動HTTP基本認證。不需要明確保存狀態。

(6)可以自動填寫登錄表單。

(7)Scrapy有一個內置的中間件,可以自動設置請求中的引用(referrer)頭。

(8)支持通過3xx響應重定向,也可以通過HTML元刷新。

(9)避免被網站使用的meta重定向困住,以檢測沒有JS支持的頁面。

(10)默認使用CSS選擇器或XPath編寫解析器。

(11)可以通過Splash或任何其他技術(如Selenium)呈現JavaScript頁面。

(12)擁有強大的社區支持和豐富的插件和擴展來擴展其功能。

(13)提供了通用的蜘蛛來抓取常見的格式:站點地圖、CSV和XML。

(14)內置支持以多種格式(JSON、CSV、XML、JSON-lines)導出收集的數據并將其存在多個后端(FTP、S3、本地文件系統)中。

Scrapy框架原理

scrapy和python的關系是什么

Scrapy Engine(引擎):負責Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數據傳遞等。

Scheduler(調度器):負責接收引擎發送過來的Request請求,并按照一定的方式進行整理排列,入隊,當引擎需要時,交還給引擎。

Downloader(下載器):負責下載Scrapy Engine(引擎)發送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,

Spider(爬蟲):負責處理所有Responses,從中分析提取數據,獲取Item字段需要的數據,并將需要跟進的URL提交給引擎,再次進入Scheduler(調度器),

Item Pipeline(管道):負責處理Spider中獲取到的Item,并進行進行后期處理(詳細分析、過濾、存儲等)的地方.

Downloader Middlewares(下載中間件):你可以當作是一個可以自定義擴展下載功能的組件。

Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴展和操作引擎和Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)

Scrapy各個組件介紹

·Scrapy Engine:

引擎負責控制數據流在系統中所有組件中流動,并在相應動作發生時觸發事件。它也是程序的入口,可以通過scrapy指令方式在命令行啟動,或普通編程方式實例化后調用start方法啟動。

·調度器(Scheduler)

調度器從引擎接收爬取請求(Request)并將它們入隊,以便之后引擎請求它們時提供給引擎。一般來說,我們并不需要直接對調度器進行編程,它是由Scrapy主進程進行自動控制的。

·下載器(Down-loader)

下載器負責獲取頁面數據并提供給引擎,而后將網站的響應結果對象提供給蜘蛛(Spider)。具體點說,下載器負責處理產生最終發出的請求對象 Request 并將返回的響應生成 Response對象傳遞給蜘蛛。

·蜘蛛——Spiders

Spider是用戶編寫用于分析響應(Response)結果并從中提取Item(即獲取的Item)或額外跟進的URL的類。每個Spider負責處理一個特定(或一些)網站。

·數據管道——Item Pipeline

Item Pipeline 負責處理被 Spider 提取出來的 Item。 典型的處理有清理、驗證及持久化(例如,存取到數據庫中)。

·下載器中間件(Downloader middle-wares)

下載器中間件是在引擎及下載器之間的特定鉤子(specific hook),處理Downloader傳遞給引擎的Response。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy的功能。

·Spider中間件(Spider middle-wares)

Spider 中間件是在引擎及 Spider 之間的特定鉤子(specific hook),處理 Spider 的輸入(Response)和輸出(Items及Requests)。其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy的功能。

從Scrapy的系統架構可見,它將整個爬網過程進行了非常具體的細分,并接管了絕大多數復雜的工作,例如,產生請求和響應對象、控制爬蟲的并發等。

上述就是小編為大家分享的scrapy和python的關系是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉黎县| 玉环县| 华蓥市| 清丰县| 开原市| 临朐县| 平原县| 包头市| 渭南市| 上栗县| 太和县| 乌鲁木齐县| 西平县| 庄浪县| 曲阳县| 扎囊县| 靖州| 如东县| 南阳市| 眉山市| 镇巴县| 黑山县| 将乐县| 龙海市| 海宁市| 新建县| 丽水市| 高雄县| 凤庆县| 宜黄县| 寿阳县| 思南县| 集安市| 酒泉市| 佳木斯市| 兴和县| 蒙山县| 彩票| 孟州市| 乌什县| 常宁市|