104學習精靈

JSON

JSON
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
關於教室
關注人數 6 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 6 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

JSON 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/29

快速入門Scrapy框架的5個執行模組及架構
一般想要自動化蒐集網頁上的資料時,普遍都會使用像BeautifulSoup或Selenium套件開發Python網頁爬蟲來取得,但是,如果所要爬取的資料量較大,擁有複雜的邏輯處理及效率的要求,這時候就會建議使用Scrapy框架,來幫助開發人員建立一個維護性較好的Python網頁爬蟲。
而要使用Scrapy框架來開發大型的Python網頁爬蟲專案前,本文就先來帶大家瞭解一下Scrapy框架。
Q:Scrapy框架是什麼?
Srapy是一個網頁爬蟲「框架」,擁有完整的Python網頁爬蟲開發功能,也提供開發人員能夠進行客製化,並且,有一定的專案架構及執行流程,所以在未來的維護上較為容易。
另外,Scrapy框架是基於Twisted非同步網路框架所建立的,執行效率也非常的好,適用於大型的Python網頁爬蟲專案。而Scrapy框架與常應用於網頁爬蟲的BeautifulSoup及Selenium套件比較,可以參考BeautifulSoup vs Selenium vs Scrapy三大Python網頁爬蟲實作工具的比較( https://www.learncodewithmike.com/2020/11/beautifulsoup-vs-selenium-vs-scrapy-for-python-web-scraping.html )文章。
Q:Scrapy框架模組包含哪些?
Scrapy框架是由以下5個主要模組結合而成,各自有負責的職責,來達成有效率的非同步Python網頁爬蟲,其中每個模組的功能說明如下:
1.SPIDERS(爬蟲程式):撰寫Python網頁爬蟲程式碼的地方,向ENGINE(引擎)發送網頁請求,以及將ENGINE(引擎)所接收的回應結果進行解析與爬取。
2.ENGINE(引擎):Scrapy框架的核心模組,就像汽車的引擎一樣,負責控制各個模組、傳遞請求及資料。
3.SCHEDULER(調度器):將ENGINE(引擎)所接收的SPIDERS(爬蟲程式)請求進行列隊,也就是排隊的意思,來調度請求的順序。
4.DOWNLOADER(下載器):負責下載ENGINE(引擎)接收到SCHEDULER(調度器)調度請求的網頁HTML原始碼,提供回應結果給ENGINE(引擎)。
5.ITEM PIPELINE(資料模型管道):將SPIDERS(爬蟲程式)所取得的資料進行後續處理,像是資料清理、存入資料庫(例:MySQL)或存入檔案文件(例:CSV、JSON)等。
Q:Scrapy框架執行流程是如何運作的?
對Scrapy框架的5個主要模組有一個基本的認識後,各個模組間的關係及執行流程又是什麼呢?
1.ENGINE(引擎)接收SPIDERS(爬蟲程式)所發送的一至多個請求。
2.ENGINE(引擎)將請求傳遞給SCHEDULER(調度器)進行列隊。
3.ENGINE(引擎)向SCHEDULER(調度器)提取下一個所要發送的請求。
4.ENGINE(引擎)將請求傳遞給DOWNLOADER(下載器)。
5.DOWNLOADER(下載器)將ENGINE(引擎)傳遞的請求網頁HTML原始碼下載下來,並且回應結果給ENGINE(引擎)。
6.ENGINE(引擎)將回應的結果傳遞給SPIDERS(爬蟲程式)。
7.SPIDERS(爬蟲程式)進行結果的解析及資料的爬取,組成ITEMS,傳遞給ENGINE(引擎)或發送新的請求。
8.ENGINE(引擎)判斷SPIDERS(爬蟲程式)所傳遞過來的如果是ITEMS(資料),就會傳遞給ITEM PIPELINES(資料模型管道),進行後續的資料清理及儲存等。反之,如果傳遞過來的是新的請求,也就是相當於第一個步驟,接著,傳遞給SCHEDULER(調度器),以此類推,重覆這樣的流程,直到SCHEDULER(調度器)沒有請求為止。
本文簡單介紹了Scrapy是一個功能完整與快速的Python網頁爬蟲框架,包含5個主要模組,各司其職,藉由ENGINE(引擎)來進行整合,並且依照一定的執行流程,來達成非同步的網頁資料爬取,適用於大型且複雜的Python網頁爬蟲專案,希望接下來的系列教學內容能夠幫助大家對Scrapy框架有一個基本的認識。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/12/python-scrapy-architecture.html )網站觀看更多精彩內容。
2 0 435 2

熱門精選

104學習精靈

產品

10/30 16:13

雙11精選加碼課程,不要錯過喔!
雙11精選加碼課程,不要錯過喔 !
第一波 11/1 00:00 ~ 11/10 23:59
想要增加職場技能,要保握學習優惠喔!讓你學習更輕鬆!
【 領『 88折送百元LINE點數 』優惠券_結帳記得使用優惠券 】
優惠時間:2024/11/1-2014/11/10
🔵 ChatGPT x Excel | 職場必學商務數據分析術
🔵 從Excel到Power BI數據視覺化
🔵 .NET開發資料庫應用系統全方位-ADO.NET與Entity Framework(.NET Core)攻略
🔵 成為 AI 科學家|資料分析師必備視覺化技能 Power BI
🔵 C# .Net Framework系統基礎實作攻略
🔵 學程式也能很好玩:不背語法寫Java
🔵 快速活用 MySQL,精準設計關聯式資料庫
🔵 全端工程師必修-Python迅速開發網站實戰
🔵 第一次就上手,前端工程新手指南
🔵 成為前端工程師|透過 HTML 與 CSS 認識網頁設計,從 0 到 1 打造實用介面 (上集)
🔵 白帽駭客入門 I 基礎網頁滲透實作
【 領『 85折送百元LINE點數 』優惠券_結帳記得使用優惠券 】
優惠時間:2024/11/1-2014/11/10
🟠 一次搞懂 ChatGPT 工作法 | 5分鐘看懂,立即上手 AI 應用觀念!
🟠 商務簡報技巧
🟠 Python基礎課程:17小時學會寫程式
🟠 訴訟基本觀念十堂課:教你避免法律風險,掌握官司的主導權
🟠 多益全制霸:必考文法全攻略
🟠 英文簡報表達力 | 商務溝通實戰技巧
🟠 多益全制霸:必考字群獨家記憶法
🟠 Offer Get ! 現在開始找份好工作
🟠 如何談升職加薪
🟠 讀懂財報的基礎入門
🟠 產品思維-像產品經理一樣思考
🟠 認識孩子的九大氣質:讓親子關係更緊密的一堂課
【 領『 85折送2百LINE點數 』優惠券_結帳記得使用優惠券 】
優惠時間:2024/11/1-2014/11/10
⚡ 畫出迷人風格 | iPad電繪Procreate插畫課
⚡ 新手的第一堂Procreate動畫課|療癒風格動起來
⚡ 【自我和解的8堂課】用金剛經破除生命誤會,找回快樂的自己
⚡ 居家水電自己來!水電爸爸的水電實務課
⚡ 【化輸入為輸出】九堂課教你輸出高品質內容
⚡ 手沖咖啡學|搞懂原理,成為咖啡職人
【更多課程優惠|查看留言處】
1 13 6506 2
104學習精靈精選課程
看更多課程
想提升職場競爭力?專業技能課程看起來👇
學習精靈

04/02 00:00

146 2
學習精靈

04/05 00:00

409 2

推薦給你

知識貓星球

喵星人

22小時前

辦公用品英文合集:釘書機、長尾夾、便利貼、迴紋針等辦公文書用具的英文原來是這個!
常見辦公室文具用品的英文該怎麼說呢?一篇教你釘書機、長尾夾、便利貼、迴紋針的英文怎麼說,來學習各種工具的英文吧!
1. 書寫工具
• Ballpoint Pen - 原子筆
• Mechanical Pencil - 自動鉛筆
• Highlighter - 螢光筆
• Eraser - 橡皮擦
• Correction Tape - 修正帶
2. 夾子和裝訂文件工具
• Stapler - 釘書機
• Staples - 釘書針
• Paperclip - 迴紋針
• Binder Clip - 長尾夾
• Hole Punch - 打孔機
3. 黏貼工具
• Push Pin - 圖釘
• Tape Dispenser - 膠帶座
• Glue Stick - 口紅膠
• Rubber Bands - 橡皮筋
4. 量測工具
• Ruler - 尺
• Calculator - 計算機
5. 文件夾等辦公用品
• Folder - 資料夾
• Post-it Notes - 便利貼
• Clipboard - 寫字夾板
記得關注我們的共學教室,不要錯過任何文章喔!
0 1 474 1
你可能感興趣的教室