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 390 2

熱門精選

104學習精靈

產品

04/25 15:52

【限量:免費報名】利用AI自動化行銷|直播講座
講座詳細資訊
時間:04/30(二) 20:00 - 21:00
講者:圭話行銷創辦人 何佳勳 / 業界資深的數位廣告行銷專家
主題:行銷新篇章:AI如何革新檔期活動策略
在這個數位化的時代,AI技術正以驚人的速度改變著我們的行銷方式。檔期促銷活動面對的受眾眾多,難以精準定位目標受眾,進而影響活動效果、每次規劃檔期活動都需要創造吸引人的內容和促銷方式,但長期以來,創意卻逐漸耗盡、想要掌握AI如何革新檔期活動策略的最新動向嗎?
你也在苦思如何創造不同以往、有別競品的檔期活動嗎?104學習精靈與緯育TibaMe,攜手邀請到數位廣告界專家 圭話行銷創辦人何佳勳老師。學員們都稱呼他為小圭老師,不僅熱愛與學員社群互動、對學員有問必答,更善於為客戶的製造許多驚喜及營收,一起期待老師分享如何透過 AI 工具提升30%的檔期活動成效吧~
1 0 5525 0
104學習精靈精選課程
看更多課程
想提升職場競爭力?專業技能課程看起來👇
學習精靈

04/02 00:00

127 2
學習精靈

04/05 00:00

392 2

推薦給你

104學習精靈

產品

1小時前

合作、溝通、談判,常見英文單字怎麼說?中英解釋、例句用法分享
在職場上,合作、溝通和談判是不可或缺的技能。這三個單字代表了建立成功團隊和有效工作關係的重要元素。一起來看看英文怎麼用吧~
1. Invitation 邀請
- 解釋:a written or verbal request inviting someone to go somewhere or do something 邀請,招待
- 例句:She received an invitation to attend the conference as a guest speaker.
- 單字用法:invitation 可用於形容口頭或書面的邀請,通常指邀請參加活動或事件的邀請。
2. Negotiation 談判
- 解釋:discussions aimed at reaching an agreement 討論以達成協議為目的
- 例句:The negotiations between the two countries lasted for weeks before they finally reached a compromise.
- 單字用法:negotiation 可用於描述商業、政治或其他形式的討論,旨在達成某種協議或共識。
3. Flexibility 靈活性
- 解釋:the ability to adapt to changing circumstances or requirements 適應變化情況或需求的能力
- 例句:The company offers employees flexibility in their work hours to accommodate personal schedules.
- 單字用法:flexibility 涉及能夠靈活調整或適應不同情況或需求的能力。
4. Collaboration 合作
- 解釋:the action of working with someone to produce or create something 與他人合作以生產或創造某物的行動
- 例句:The project's success was the result of close collaboration between different departments.
- 單字用法:collaboration 涉及與他人合作,共同完成某項任務、計劃或項目。
5. Communication 溝通
- 解釋:the imparting or exchanging of information or news 信息或消息的傳遞或交換
- 例句:Effective communication is essential for a successful team.
- 單字用法:communication 涉及將信息或消息傳遞給他人,以便溝通、理解和共享想法。
追蹤職場必備英文,每天進步一點點!
0 0 37 0
你可能感興趣的教室