開源專案
scrapy/scrapy avatar
scrapy/scrapy

Scrapy:一個用於 Python 的快速高階網路抓取框架

Scrapy,一個用於 Python 的快速進階網頁爬行和抓取框架。

64,346 個 Star11,959 個 ForkPythonBSD-3-Clause

秒懂

它是什麼?
根據 README 與倉庫元資料,介紹 Scrapy 是什麼、如何安裝、由誰維護,以及它的 BSD-3-Clause 授權條款。
適合誰用?
Scrapy 的 README 刻意保持簡短:它說明框架定位,給出一條安裝指令,然後把其餘內容指向文件。倉庫元資料補充了專案規模與維護背景,授權條款則規定再散布條件,但沒有承諾支援服務。
可以商用嗎?
可以。BSD-3-Clause 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

scrapy scrapy deep 的第 1 個觀察點

README 開頭將 Scrapy 描述為一個用於從網站擷取結構化資料的網路抓取框架。這和單一爬蟲腳本不是同一類東西:框架為爬蟲提供整體結構,而倉庫元資料進一步說明 Scrapy 是一個面向速度的高階框架。README 本身沒有列出框架包含的元件,因此關於選擇器、管道、中介軟體、請求/回應模型等具體機制,都必須到連結的文件中核實,不能從這份 README 直接推斷。它也沒有說明框架與第三方函式庫之間的關係,或者是否提供內建的排程器與去重邏輯;這些內容全部留給了文件。對於需要評估框架的人來說,先知道它是框架而不是工具,比任何功能列表都重要,因為後續所有使用方式都建立在這一點上。

scrapy scrapy deep 的輸入檔案核對(1):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的輸出結果核對(2):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的錯誤訊息核對(3):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的版本資訊核對(4):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的權限範圍核對(5):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的資料保存核對(6):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的依賴套件核對(7):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的回復方式核對(8):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的平台差異核對(9):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的設定檔核對(10):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的命令列核對(11):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的目錄結構核對(12):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的日誌內容核對(13):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的網路行為核對(14):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的授權用途核對(15):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的升級影響核對(16):先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。這一項只記錄 README 能支持的現象,若文件沒有明說,就標記為未說明,不把測試結果擴大成專案承諾。

scrapy scrapy deep 的第 2 個觀察點

README 給出的唯一安裝指令是 `pip install scrapy`。它沒有提到虛擬環境、作業系統相關的套件管理器,也沒有提到除 Python 本身之外的依賴限制。README 說明 Scrapy 是跨平台的,並且要求 Python 3.10 或更高版本。它沒有說明過去支援哪些更舊的 Python 版本,也沒有說明某個 Python 版本的支持會持續到什麼時候;這些資訊需要看 PyPI 的發布記錄和 README 所連結的文件。對於如何使用指令行建立專案、執行爬蟲或匯出資料,README 也未作說明。安裝之後的學習路徑完全依賴官方文件,而不是依賴這份 README 中的範例。對於已經安裝過 Python 的使用者,`pip install scrapy` 可能是唯一需要的指令,但 README 沒有解釋它會安裝哪些依賴,也沒有提供安裝後的驗證指令。

scrapy scrapy deep 的第 3 個觀察點

Scrapy 由 Zyte 維護,README 指出這家公司舊稱 Scrapinghub,同時還有大量其他貢獻者參與。README 提供了貢獻者圖譜的連結,以及文件中單獨一份貢獻指南的連結。它沒有描述行為準則、問題範本或拉取請求審核流程。對於一個在倉庫快照時有 572 個未關閉問題的專案來說,實際貢獻流程需要到貢獻指南和問題追蹤器中閱讀,README 本身並不包含這些內容。關於維護者的發布節奏、安全公告管道或社群支援方式,README 也沒有提及。貢獻者圖譜連結至少表明專案承認外部貢獻,但具體如何提交補丁仍然需要以指南為準。

scrapy scrapy deep 的第 4 個觀察點

倉庫元資料快照顯示,這個 Python 專案有 63,647 個星標、11,859 個複刻和 572 個未關閉問題。預設分支是 master,倉庫沒有被封存,首頁是 scrapy.org。這些數字是某個時間點的計數,不能反映提交頻率、發布週期,也不能反映未關閉問題中有多少是缺陷、多少是功能請求。README 完全沒有提到這些指標,因此這完全是元資料層面的資訊。如果想知道專案是否活躍,需要查看提交歷史和近期發布,而不是只看星標數。倉庫沒有被封存也只說明它目前仍在接受變更,不等於有持續維護的承諾。

scrapy scrapy deep 的第 5 個觀察點

Scrapy 使用 BSD-3-Clause 授權條款。該授權允許以原始碼和二進位形式再散布,前提是保留版權聲明、條件清單和免責聲明,並且在二進位形式的分發中也要在文件或其他材料中複現這些內容;同時,未經書面許可,不得使用 Scrapy 或其貢獻者的名稱來推廣衍生產品。授權包含了擔保免責聲明和責任限制條款,明確指出軟體按現狀提供,不保證適銷性或特定用途適用性。它沒有說明支援服務是否可用、安全修補如何發布、或者維護承諾如何執行;這些都屬於授權條款文字之外的問題。授權只約束程式碼的使用和再散布,不構成對專案行為或回應速度的承諾。

scrapy scrapy deep 的第 6 個觀察點

這份 README 刻意保持極簡。它給出了專案名稱、一條安裝指令、一個文件連結和一個貢獻指南連結。它沒有解釋如何定義爬蟲、如何擷取欄位、如何追蹤連結或如何處理分頁,也沒有提供基準測試、部署範例或生產使用者清單。評估 Scrapy 的人需要繼續閱讀連結的文件,而這正是 README 指向的方向。README 也沒有說明專案是否維護外掛註冊表,或者是否對第三方擴充提供穩定的 API 承諾。對於想要快速上手的人,README 只提供了入口;對於想要評估架構的人,README 提供的材料明顯不足,必須結合文件和原始碼。所有這些判斷都必須以文件和實際程式碼為準。

scrapy scrapy deep 的最小驗證路徑

先依 scrapy scrapy deep 的 README 建立最小案例,固定輸入與版本,記錄命令、輸出和錯誤訊息,再以該專案的文件與設定檔核對結果。

編輯結論

Scrapy 的 README 刻意保持簡短:它說明框架定位,給出一條安裝指令,然後把其餘內容指向文件。倉庫元資料補充了專案規模與維護背景,授權條款則規定再散布條件,但沒有承諾支援服務。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記