104學習

資料搜集

資料搜集
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
指的是有系統地尋找、整理並評估相關資訊,為決策或工作提供可靠依據。這項技能能幫助你快速掌握問題核心,避免憑空猜測或誤判,有效提升工作效率與品質。在職場中,能夠準確取得正確資料,不僅能支援專案推進,也有助於跨部門溝通協調,是解決問題與創新不可或缺的基礎能力。
關於教室
關注人數 16 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 16 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

資料搜集 學習推薦

Mike Ku

Learn Code With Mike品牌創辦人

2021/12/21

在Scrapy框架整合Selenium套件爬取動態網頁的實作
本文以Accupass網站的精選活動為例,來分享Scrapy框架整合Selenium套件,開發Python網頁爬蟲的流程。
Q: 如何建立Scrapy網頁爬蟲?
首先,利用以下指令安裝Scrapy框架:
$ pip install scrapy
接著,新增一個資料夾,並且使用命令提示字元切換到該資料夾的目錄下,建立Scrapy專案,如下:
$ scrapy startproject accupass_scraper .
有了專案後,就能夠利用以下指令建立Scrapy網頁爬蟲:
$ scrapy genspider accupass accupass.com
Q:如何安裝scrapy-selenium套件?
而Scrapy框架想要使用Selenium套件來發送請求與接收回應,就需要一個Middleware來使用Selenium套件。
其中的Middleware,也就是在Scrapy發送請求前,以及將回應結果傳給Scrapy網頁爬蟲前,能夠在Middleware中來進行前處理。
所以,Scrapy框架想要使用Selenium套件來發送請求與接收回應結果,就需要定義Middleware,當然,已經有大大寫好了scrapy-selenium Middleware可以使用,安裝方式如下指令:
$ pip install scapy-selenium
接下來,前往下載Selenium的瀏覽器驅動,並且放置於Scrapy專案資料夾中。開啟settings.py檔案,加入scrapy-selenium Middleware的相關設定,如下範例:
DOWNLOADER_MIDDLEWARES = {
'scrapy_selenium.SeleniumMiddleware': 800
}
SELENIUM_DRIVER_NAME = 'chrome'
SELENIUM_DRIVER_EXECUTABLE_PATH = 'chromedriver.exe'
SELENIUM_DRIVER_ARGUMENTS = ['-headless']
Q:如何Scrapy整合Selenium爬取動態網頁?
開啟Scrapy專案的accupass.py檔案,引用scrapy-selenium的SeleniumRequest模組,如下範例:
import scrapy
from scrapy_selenium import SeleniumRequest
而想要讓Scrapy框架使用Selenium套件發送請求,就可以新增start_requests()方法,如下範例:
class AccupassSpider(scrapy.Spider):
name = 'accupass'
allowed_domains = ['accupass.com']
start_urls = ['http://accupass.com/']
def start_requests(self):
yield SeleniumRequest(url='https://www.accupass.com/?area=north', callback=self.parse)
以上的callback參數就是收到網頁的回應結果之後,所要執行的方法,也就是爬取網頁上的資料,如下範例:
class AccupassSpider(scrapy.Spider):
name = 'accupass'
allowed_domains = ['accupass.com']
start_urls = ['http://accupass.com/']
def start_requests(self):
yield SeleniumRequest(url='https://www.accupass.com/?area=north', callback=self.parse)
def parse(self, response):
titles = response.css("p.style-f13be39c-event-name::text").getall()
for title in titles:
print(title)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/11/scrapy-integrate-with-selenium.html
)網站觀看更多精彩內容。
看更多
3 0 939 2
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/21

掌握3個降低Scrapy網頁爬蟲被封鎖的技巧
Q: Scrapy網頁爬蟲框架如何輪流替換User-Agent(使用者代理)?
在Scrapy網頁爬蟲爬取網頁時,網站都會使用User-Agent(使用者代理)來識別所使用的瀏覽器版本資訊,而當Scrapy網頁爬蟲每次爬取都使用相同的User-Agent(使用者代理),就很容易被懷疑是網頁爬蟲而被封鎖。
所以,如果Scrapy網頁爬蟲在發送請求的過程中,隨機使用不同的User-Agent(使用者代理),就可以大幅降低被偵測的風險。
而要達到這樣的功能,就能夠利用以下指令來安裝scrapy-user-agents套件,讓Scrapy網頁爬蟲能夠隨機取用不同的User-Agent(使用者代理):
$ pip install scrapy-user-agents
接著,開啟Scrapy網頁爬蟲專案的settings.py檔案,在DOWNLOAD_MIDDLEWARES的地方,加入以下的設定:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'scrapy_user_agents.middlewares.RandomUserAgentMiddleware': 400,
}
Q: Scrapy網頁爬蟲框架如何輪流替換Proxy IP(代理服務器IP)?
同樣,如果Scrapy網頁爬蟲都使用相同的IP發送請求,很容易會被反爬蟲網站發現而封鎖。這時候,就會需要隨機使用不同的Proxy IP(代理服務器IP),降低被偵測的風險。
可以利用以下指令安裝scrapy-rotating-proxies套件,來達成上述的效果:
$ pip install scrapy-rotating-proxies
開啟Scrapy網頁爬蟲傳案的settings.py檔案,加入以下的設定:
ROTATING_PROXY_LIST_PATH = '/path/my_proxies.txt'
DOWNLOADER_MIDDLEWARES = {
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}
其中,在自訂的Proxy IP檔案(my_proxies.txt)中加入Proxy IP,如下範例:
ROTATING_PROXY_LIST = [
'proxy_ip_1:8000',
'proxy_ip_2:8031',
...
]
Q: Scrapy網頁爬蟲框架如何使用無頭瀏覽器(Headless Browser)?
無頭瀏覽器(Headless Browser)也就是沒有圖形化的使用者介面瀏覽器,能夠模擬使用者在網頁上的操作,降低反爬蟲網站的偵測。
其中,Selenium就是最常被用來啟用無頭瀏覽器(Headless Browser)的套件,而Scrapy結合Selenium套件的實作方式可以參考[Scrapy教學12]在Scrapy框架整合Selenium套件爬取動態網頁的實作指南文章( https://www.learncodewithmike.com/2021/11/scrapy-integrate-with-selenium.html )。
當然,除了本文所分享的3個Scrapy網頁爬蟲克服反爬蟲網站的方法外,還可以參考[Python爬蟲教學]7個降低Python網頁爬蟲被偵測封鎖的實用方法文章( https://www.learncodewithmike.com/2020/09/7-tips-to-avoid-getting-blocked-while-scraping.html ),不外乎就是避免像Python網頁爬蟲機器人一樣有規則模式的爬取資料,才有機會不被反爬蟲網站抓到唷。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/12/3-tips-for-scrapy-without-getting-blocked.html
)網站觀看更多精彩內容。
看更多
2 0 1230 2

熱門精選

104學習

產品

05/04 16:35

2026 年 Prompting 怎麼學?AI大神吳恩達推出免費新課給一般人的 AI 使用指南
AI 工具越來越強,提示詞也不再只是「請幫我寫一段文案」這麼簡單。AI 教育者吳恩達(Andrew Ng)近期推出新課程《AI Prompting for Everyone》,主打不需要技術背景,幫助一般使用者學會更有效地使用 ChatGPT、Claude、Gemini 等 AI 工具。DeepLearning.AI 課程頁顯示,這是一門初學者課程,共 3 小時 4 分鐘、21 堂影片課,由吳恩達授課。官方學習頁也標示可免費開始學習、觀看課程影片;若需要 graded assignments 與證書,則屬於 PRO 方案。
吳恩達是誰?為什麼他的新課值得關注?
吳恩達是全球知名的 AI 教育者與機器學習專家。他是 DeepLearning.AI 創辦人、Coursera 共同創辦人,也曾擔任百度首席科學家,並曾創辦與領導 Google Brain 專案,目前也是史丹佛大學兼任教授。
對非工程背景的上班族來說,吳恩達最重要的影響,是他長期把 AI 知識轉化成大眾可以理解、可以上手的學習內容。從早期的機器學習課程,到《AI For Everyone》,再到這次的《AI Prompting for Everyone》,他的課程常被視為 AI 學習趨勢的風向球。
這門課在教什麼?不是背 Prompt,而是學會和 AI 協作
《AI Prompting for Everyone》的核心,不只是教你寫出更漂亮的提示詞,而是教你在不同工作情境中,如何讓 AI 產出更可靠、更有用的結果。官方課程頁將學習重點分成三大方向:找資訊、腦力激盪與寫作、創作與建構。
第一個重點是 Finding Information,也就是用 AI 找資料。課程會說明 AI 模型本身已經知道什麼、什麼時候應該使用 AI 網路搜尋、什麼情境適合使用 deep research mode,以及如何取得更準確、有來源的回答。
這對上班族非常實用。無論是做市場資料整理、競品分析、產業趨勢觀察,或準備會議前的背景研究,AI 不只是回答問題的工具,更可以協助快速建立資料架構。但前提是使用者要懂得要求來源、設定範圍,也要知道哪些資訊需要再查證。
第二個重點是 AI as a Thought Partner,也就是把 AI 當成思考夥伴。課程會教使用者如何提供正確上下文,讓 AI 理解真正需求;也會談到如何讓 AI 提供誠實回饋,而不是只迎合使用者。官方課綱中也列出 brainstorming、context、reasoning、sycophancy、writing with AI、AI critique 等單元。
這代表未來職場的 AI 能力,不只是「會叫 AI 寫東西」,而是能不能請 AI 幫忙檢查盲點、提出反方觀點、改善表達方式,甚至協助自己做更完整的決策思考。
第三個重點是 Working with Multimedia and Code。課程會介紹如何在提示中使用圖片、讓 AI 理解圖片、生成視覺內容,並使用 AI 建立簡單遊戲、網站與 App;官方也特別說明,這部分不需要程式經驗。
這也反映 AI 工具的使用場景正在擴大。過去上班族多半把 AI 用在寫信、摘要、翻譯、整理資料;但未來,AI 也可能協助做簡報素材、產出視覺概念、分析資料,甚至建立可展示的簡易 prototype。
誰適合上這門課?
官方課程頁指出,這門課適合任何在日常工作或生活中使用 ChatGPT、Claude、Gemini 等 AI 工具,並希望獲得更好結果的人,不需要技術背景,也沒有必修前置課程。
換句話說,這門課很適合以下幾類上班族:經常需要查資料的企劃、行銷、編輯、研究人員;需要寫報告、簡報、Email 的一般辦公室工作者;想把 AI 帶進工作流程的主管;以及想開始學 AI、但不想一開始就碰程式的人。
對職場工作者的啟示:提示力已經變成基本功
這門課最值得注意的訊號是:AI 提示力正在從「技巧」變成「基本工作能力」。
過去,很多人學 AI 會先找提示詞模板,例如「請扮演某某角色」、「請一步一步思考」、「請用表格整理」。這些技巧仍然有用,但已經不夠。真正會用 AI 的人,還要知道如何提供背景資料、設定輸出格式、要求資料來源、讓 AI 挑戰自己的想法,並判斷哪些內容可以採用、哪些內容必須查證。
也就是說,未來職場上的 AI 能力,不是誰背了最多 prompt,而是誰更會設計任務、拆解問題、提供上下文,並把 AI 產出整合成真正能交付的工作成果。
有興趣的讀者可至 DeepLearning.AI 官方課程頁開始學習:《AI Prompting for Everyone》。
課程影片可免費開始觀看;若想取得作業評分與證書,需留意官方 PRO 方案說明。
DeepLearning.AI《AI Prompting for Everyone》
看更多
1 0 1033 1
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 947 2
你可能感興趣的教室