104學習精靈

Beautifulsoup

Beautifulsoup
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
「Beautifulsoup:該角色負責從各類網頁中提取並整理數據,以支持分析及報告的生成。主要目標是確保資料的準確性與完整性,並提升數據採集的效率。必須具備扎實的程式設計能力,熟悉Python及Beautiful Soup庫,並具備良好的數據分析能力。此外,需具備較強的邏輯思維及問題解決能力,並能在跨部門協作中有效溝通,以應對快速變化的商業環境和台灣獨特的職場文化挑戰。」
關於教室
關注人數 1 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 1 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

Beautifulsoup 學習推薦

全部
影片
文章
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 817 2

熱門精選

104學習

產品

09/11 14:57

轉職首選!3 週從零到上手的數據分析師養成營 —— 104人力銀行 × 104學習 × 緯育 TibaMe 聯合推出
想跨入高薪、有前景,又能左右商業決策的數據分析師職涯,但擔心自己沒有程式背景、時間不夠嗎?
這堂【數據分析師學習營】或許是你理想的起點。
✨ 首次跨界合作,更強大資源整合✨
這次由 104學習精靈 首度攜手 緯育 TibaMe 聯合打造。
⚡104人力銀行 × 104學習精靈:深耕職涯數據多年,最了解台灣企業用人需求,課程更貼近市場實際職缺。
⚡緯育 TibaMe:累積多年產業培訓經驗,專注於 IT、數據、AI 等熱門技能轉職養成,培訓模式完整,輔導成效有口碑。
這樣的合作,讓學員享有真實的培訓經驗,學習效果與轉職落地率都更具保障。
課程亮點一次看
🔥3 週密集實戰:短短三週密集訓練,快速掌握職場必備技能,不必耗費半年、一年時間啃課表。
🔥零基礎設計:無需工程背景,也不用寫程式,由淺入深帶你學會資料庫查詢(SQL)與數據視覺化工具 Power BI。
🔥實戰作品累績履歷實力:課程設計強調實務操作,結訓不僅懂工具,更手上有完成的作品,讓履歷直接升級。
🔥專屬平台與支援:透過共學社群與專業助教協助,學習不再孤單。
為什麼你該報名?
🟢快速起步,快速看成果:三週聚焦提速進展,是在職或時間有限者的最佳選擇。
🟢具備市場需求核心技能:SQL 與 Power BI,完全符合企業當前的數據分析需求。
🟢履歷實力落地具體化:實作作品比起只學理論更能打動雇主眼光。
🟢104 × 緯育 TibaMe 強強聯手:把資源與專業結合,讓學習不只停留在課程,而是直通「就業」與「轉職」。
👉 立即報名,搶先卡位:超小班就50位唷!
👉 刷中信/台新/玉山可享3期0利率!
👉 超早鳥優惠領$850券報名到9/24唷!
👉 前10名解鎖送500元Line點數,第11名起送200元Line點數,更多驚喜組合購,可再額外送100元Line點數
看更多
3 0 10034 4
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/19

7個降低Python網頁爬蟲被偵測封鎖的實用方法(下)
本文將延續「7個降低Python網頁爬蟲被偵測封鎖的實用方法(上)」,接續分享降低Python網頁爬蟲被偵測封鎖的方法。
Q:如何設定參照位址(Referer)
請求表頭(Request Headers)中另一個重要的欄位就是參照位址(Referer),用來告訴網站這個請求(Request)是來自於哪一個網站,如下範例:
headers = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-TW,zh;q=0.9",
"Host": "example.com",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36",
"Referer": "https://www.google.com/" #參照位址
}
response = requests.get(url="https://example.com", headers=headers)
這時候可以使用像SEMRush( https://www.semrush.com/ )的工具,來顯示目標網頁的反向連結,也就是能夠到達目標網頁的其它連結,就可以在Python網頁爬蟲的每一次請求(Request)前,將不同的反向連結設定到參照位址(Referrer)中,讓每一次的來源網站都不相同,降低被網頁偵測到的風險。
Q:如何設定隨機的延遲時間?
在每一次請求(Request)之間,最好設定隨機的延遲時間(Delay),這樣除了防止每一次的請求(Request)間隔時間不同之外,也沒有固定的請求模式,可以參考以下的範例:
delay_choices = [8, 5, 10, 6, 20, 11]
delay = random.choice(delay_choices)
time.sleep(delay) #延遲
Q:使用無頭瀏覽器(Headless Browser)的方法?
無頭瀏覽器(Headless Browser)和一般瀏覽器不一樣的地方是,它沒有圖形化的使用者介面,通常會使用指令的方式來執行,知名的Selenium套件就可以讓開發人員利用程式碼,自動化控制瀏覽器的執行,模擬人類的操作,降低被偵測到的風險,使用的方式可以參考[Python爬蟲教學]整合Python Selenium及BeautifulSoup實現動態網頁爬蟲文章( https://www.learncodewithmike.com/2020/05/python-selenium-scraper.html )。
Q:如何避免掉入網頁蜜罐陷阱(Honeypot Traps)
網頁蜜罐陷阱(Honeypot Traps)就是許多網頁會在HTML原始碼中埋入只有網頁爬蟲會讀取到的隱藏連結或屬性,如果在開發Python網頁爬蟲沒有注意或避開時,很容易就會被偵測到而被封鎖,舉例來說,有個隱藏的連結帶有「display:none」或「visibility: hidden」的CSS屬性等,這是正常的使用者看不到,而網頁爬蟲所能讀取到的。
要避免掉入網頁蜜罐陷阱(Honeypot Traps),除了要注意網頁的HTML原始碼之外,另一個方法就是在開發Python網頁爬蟲時,可以參考該網頁的網站地圖(Sitemap),其中會列出公開給使用者存取的網頁網址,在開發的過程中,就盡量挑選裡面的公開網址來進行爬取。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/09/7-tips-to-avoid-getting-blocked-while-scraping.html )網站觀看更多精彩內容
看更多
2 0 588 1

推薦給你

104學習

產品

09/15 14:38

「環境部淨零綠領人才培育課程」首次測驗今登場 逾千名考生應試 到考率超過96%
「環境部淨零綠領人才培育課程」首場集中測驗今天在全國14個考區同步舉行,約1,400名完成48小時專業課程的學員參加測驗,到考率超過96%。凡是30歲以下在學生(不含在職專班者)及低(中低)收入戶,測驗及格者可申請學費優惠。環境部部長彭啓明為鼓勵這些通過測驗的綠領人才成為推動國家淨零轉型的生力軍,後續將擇優選出20名成績優異者,規劃於行政院大禮堂舉辦合格證明頒發典禮,以表示對於綠領人才的尊重並彰顯其榮譽。
-
主辦本次測驗的國家環境研究院(國環院)表示,參加本次測驗的學員,男女比例約為1比1,平均年齡為33歲,最年輕的學員年齡僅17歲,最年長者為69歲。而社會人士占五成多,略高於在學學生的四成多;三成具研究所以上學歷,兩成為文法商等跨領域背景,顯示各年齡層及不同專業領域對綠色轉型專業知能的高度需求。
-
國環院又指出,學員職業背景相當多元,除了大專院校在學生,也有來自各行各業的專業人士,包括上市櫃公司主管、會計師、資訊工程師與環工技師,甚至還有美髮業者與電影剪接師參與,充分展現綠領課程已成為跨領域專業人才進修與轉型的重要管道。
-
本次測驗採筆試方式,測驗後15個工作天內,國環院將寄發電子成績單,及格者同時可獲環境部核發的官方合格證明,請學員務必留意信件收取。國環院提醒,凡30歲以下大專院校在學生(不含在職專班),只要首次測驗及格即可申請新臺幣6,000元半額補助;符合中低收入戶、低收入戶或身心障礙身分者,則可申請新臺幣12,000元全額補助。學員取得成績單後,可逕向原開班學校申請學費減免事宜。
-
國環院強調,課程將持續開班招生,有興趣者可至「綠領人才資訊平臺」就近報名:https://ulvis.net/iTs8
下一場集中測驗訂於11月22日舉行,並將增設南投與離島考區,便利更多學員參與。
-
立即報名「環境部淨零綠領人才培育課程」:
看更多
0 0 854 0
你可能感興趣的教室