搜尋
首頁後端開發Python教學Python爬蟲框架Scrapy的簡單介紹

Python爬蟲框架Scrapy的簡單介紹

Oct 19, 2018 pm 05:04 PM
python

這篇文章帶給大家的內容是關於Python爬蟲框架Scrapy的簡單介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

Scrapy 框架

Scrapy是用純Python實作為了爬取網站資料、提取結構性資料而寫的應用框架,用途非常廣泛。

框架的力量,使用者只需要自訂開發幾個模組就可以輕鬆的實現一個爬蟲,用來抓取網頁內容以及各種圖片,非常之方便。

Scrapy 使用了Twisted'twɪstɪd非同步網路框架來處理網路通訊,可以加快我們的下載速度,不用自己去實現非同步框架,並且包含了各種中間件接口,可以靈活的完成各種需求。

Scrapy架構圖(綠線是資料流向):

95625f65089e4bc98a269cfda6701597.png

Scrapy Engine(引擎): 負責Spider、ItemPipeline、Downloader、Schedulerrapy 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)

b847d7fa404a404ca0a656028ada63b5.png

如果你在學習Python的過程中遇見了很多疑問和難題,可以加-q-u-n   227 -435-450裡面有題,可以加-q-u-n   227 -435-450裡面有題,可以加法#Scrapy#的運作流程

程式碼寫好,程式開始運作...

引擎:Hi! Spider, 你要處理哪一個網站?

Spider:老大要我處理xxxx.com。

引擎:你把第一個需要處理的URL給我吧。

Spider:給你,第一個URL是xxxxxxx.com。

引擎:Hi!調度器,我這有request請求你幫我排序入隊一下。

調度器:好的,正在處理你等一下。

引擎:Hi!調度器,把你處理好的request請求給我。

調度器:給你,這是我處理好的request

引擎:Hi!下載器,你按照老大的下載中間件的設定幫我下載一下這個request請求

下載器:好的!給你,這是下載好的東西。 (如果失敗:sorry,這個request下載失敗了。然後引擎告訴調度器,這個request下載失敗了,你記錄一下,我們待會兒再下載)

引擎:Hi! Spider,這是下載好的東西,並且已經按照老大的下載中間件處理過了,你自己處理一下(注意!這兒responses預設是交給def parse()這個函數處理的)

Spider :(處理完畢資料之後對於需要跟進的URL),Hi!引擎,我這裡有兩個結果,這個是我需要跟進的URL,還有這個是我拿到的Item資料。

引擎:Hi !管道 我這兒有個item你幫我處理一下!調度器!這是要跟進URL你幫我處理下。然後從第四步開始循環,直到獲取完老大需要全部資訊。

管道``調度器:好的,現在就做!

注意!只有當調度器中不存在任何request了,整個程式才會停止,(也就是說,對於下載失敗的URL,Scrapy也會重新下載。)

製作Scrapy 爬蟲一共需要4步:

新專案(scrapy startproject xxx):新建一個新的爬蟲專案

#明確目標(寫items.py):明確你想要抓取的目標

製作爬蟲(spiders/xxspider.py):製作爬蟲開始爬取網頁

儲存內容(pipelines.py):設計管道儲存爬取內容

#

以上是Python爬蟲框架Scrapy的簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault思否。如有侵權,請聯絡admin@php.cn刪除
Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。