之前在幫客戶製作爬蟲任務的時候,很多網站都會用各種方式來阻擋爬蟲大軍的攻擊,剛好最近有客戶問我可不可以幫忙爬 Dcard 的文章留言,今天就來試試看使用 Manus 攻略 Dcard!
首先,可以自己對這個網站做簡單的測試,像是是否需要登入才能看到文章?如果不需要登入,使用無痕網站是否可以看得到(會不會有 Cloudflare 阻擋)?當然這些都可以交給 AI 來幫忙測試,但如果對於這網站有一些基本的了解,就可以很快的對症下藥!
Dcard 測試結果:不需要登入,但使用無痕會被 Cloudflare 阻擋

爬蟲基本能簡單的分成兩種:
第一種:直接發送 HTTP 請求取得資料
例如使用 requests、curl_cffi 等工具,直接向網站的 API 或網頁伺服器請求資料,不需要真的開啟瀏覽器
第二種:透過瀏覽器取得資料
例如使用 Playwright、Selenium 或 Computer Use,實際啟動 Chrome 等瀏覽器,讓網頁像真人瀏覽一樣載入,再從畫面或網頁內容中取得資料
基本上如果第一種方法可以取得資料,通常會優先選擇第一種,因為速度較快、資源消耗較少,也比較容易部署與大量執行,如果網站需要執行 JavaScript、登入、操作互動元件,或有較嚴格的反爬蟲機制,才會考慮使用第二種瀏覽器方案
一開始我先直接請他爬取,正常都會直接使用 http request 請求來做,這是最基本款的所以一下就被擋下來了

再來請他使用 curl ciff 套件爬取,但也一樣失敗了
(curl_cffi 是一個 Python 爬蟲套件,能模擬真實瀏覽器的「網路指紋」(TLS/HTTP2 簽章),幫助你輕鬆繞過 Cloudflare 等防爬蟲機制的阻擋 - By Gemini 3.6 Flash)

不過我在本地端使用 python 撰寫爬蟲的 curl ciff 套件是可以正常爬取,Manus 推測可能是 IP 導致失敗

竟然第一種方法不行,那就只能使用第二種相對較強硬的方法了,首先先測試 Playwright ,原因它可以開啟無頭模式(真實有開啟瀏覽器,但藏在背景不影響電腦使用),仍以失敗告終,但這在意料之中,因為 Manus 是一個全新的環境,使用 Playwright 開啟的網站基本一下就會被抓到

但通常 Playwright 要操作這種需要登入的網站,會搭配的是本地端的電腦,先在某資料夾建立一個 chrome profile 手動登入某網站之後,再請 Playwright 使用那個 profile 基本上能解決 95% 以上的阻擋
最後只剩下 Computer Use 這招了,這招通常都會放到最後,因為比較多硬性條件:電腦與瀏覽器都要開著,不過基本上能解決將近 95% 以上的問題,上次蝦皮的訊息回覆也是使用這個方法,使用前需要先安裝 Chrome 的擴充功能,詳細操作方法可以參考之前的文章
【Day 10】Manus 讀取並回覆蝦皮留言:https://ithelp.ithome.com.tw/articles/10416482
以下是最終成功的結果,希望今天的分享能讓大家對於爬蟲的知識增加~~
