哈囉,我是 Maneshwar。我正在打造 git-lrc,一個會在每次提交時執行的微型 AI 程式碼審查工具。它是免費的,並且在 GitHub 上以 source-available 方式開放。歡迎 給 git-lrc 點星,幫助開發者發現這個專案。也請試用看看並分享你的回饋。

如果你在過去兩年裡嘗試抓取公開網頁,八成已經注意到這件事了。

你寫了四行 Python,回來一個 403。你加上 User-Agent 標頭,回來一個更有禮貌的 403。

你啟動無頭 Chrome,結果看到一個永遠轉個不停的驗證頁面。

最後你會開始去看資料 API 的定價頁,某個笑容滿面的登陸頁面試圖把原封不動的公開 HTML 再賣給你,一個月 100 美元。

與此同時,大型實驗室早已用我們永遠無法匹敵的規模,把同一個網路資料都吸走了,現在以程式化方式讀取網頁的標準做法,竟然是付錢給別人。

網路從「預設開放」變成了「開放,但前提是你看起來像一個拿著滑鼠的人」。

所以,來聊聊八個正在默默把這種存取權拿回來的開源專案。我大多都實際用過。有些真的很厲害。

關於星標數量的小提醒:我會提到幾個,因為它們大致能表示「別人已經先幫你踩過那些 bug」。但它們不代表維護狀況。某個 repo 可能有 7 萬顆星,最後一次提交卻停在 2023 年。在看星標數之前,先看提交紀錄圖。

1. Firecrawl:把 URL 變成提示詞的那個

Image description

它做什麼: 你給它一個 URL,它回傳給你乾淨的 Markdown。不是那種帶著導覽列、Cookie 橫幅、還有四個訂閱彈窗的 HTML。是 Markdown。標題、段落、連結,完成。

它不只處理單頁。

crawl 端點會爬完整個網站,map 可以在不抓取全部內容的情況下列出 URL 清單,而結構化擷取則能依照你描述的格式,從頁面中抽出有型別的 JSON。

from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-...")
doc = app.scrape("https://example.com/docs/getting-started",
                 formats=["markdown"])
print(doc.markdown)

適合使用的時機: 你想把網頁變成文字,而且要立刻用,寧可直接把功能做出來,也不想自己組一支爬蟲團隊。

{% github=https://github.com/firecrawl/firecrawl

2. Crawl4AI:同樣的概念,但由你掌控

Image description

它做什麼: 一個開源、非同步的 Python 爬蟲,輸出可直接提供給 LLM 使用的 Markdown。

沒有 API 金鑰。沒有額度。沒有速率限制,除了目標網站本身施加的,以及你的良心應該有的那一道。

import asyncio
from crawl4ai import AsyncWebCrawler

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(url="https://example.com")
        print(result.markdown)

asyncio.run(main())

適合使用的時機: 你有大量需求、你有基礎設施團隊,或者你有些資料不能合法交給第三方服務。

{% github=https://github.com/unclecode/crawl4ai

另外,這兩個專案其實都已經收斂到同一個洞見,這點看起來還挺有趣的。

Image description

3. Browser-use:一個有手的代理人

Image description

它做什麼: 把 LLM 接到真實瀏覽器上,讓它直接操作。點擊、輸入、捲動、填表、登入、操作多步驟結帳流程。

你用英文描述目標,它自己去理解 DOM。

適合使用的時機: 目標網站真的需要互動、流量不大,而且不然就得人手操作。

{% github=https://github.com/browser-use/browser-use

4. Scrapy:在它流行之前就已經在做這件事的那個

Image description

它做什麼: Python 的爬蟲框架。請求排程、並行、重試、中介軟體、資料專案管線、自動節流,應有盡有。

它大約從 2008 年開始就已經在正式環境中使用,爬過的頁面數量比這份清單裡其他工具加起來還多。

適合使用的時機: 大量、穩定、而且多半是靜態的目標站。它是那種無聊但正確的答案,而無聊但正確的答案最能養活公司。

{% github=https://github.com/scrapy/scrapy

5. Crawlee:你原本正準備很糟地重造的那套基礎設施

Image description

它做什麼: Apify 團隊推出的 Node.js(現在也支援 Python)爬蟲函式庫。

代理輪替、工作階段管理、瀏覽器指紋偽裝、帶退避機制的自動重試、可在重啟後續跑的請求佇列,以及不管底層是純 HTTP、Playwright 還是 Puppeteer,都能共用的統一 API。

適合使用的時機: 你在 Node 生態系中,或你的目標站點充滿敵意,而你需要一套反封鎖工具堆疊,又不想花錢買。

{% github=https://github.com/apify/crawlee

6. Scrapling:會自我修復的爬蟲

Image description

它做什麼: 一個 Python 爬蟲,會記住某個元素「原本是什麼」,所以當網站重新設計、你的 .product-title 變成 .ProductCard__title--x7f2 時,它會根據相似度重新找到那個元素,而不是回傳空清單。

適合使用的時機: 你長期維護很多 spider,而 selector 腐化才是你真正的瓶頸。

{% github=https://github.com/D4Vinci/Scrapling

關於那種「把這個做成每月 5,000 美元的服務」的說法

每支講這個主題的影片最後都會收在同一個推銷詞:名單開發代理商每個月會為這種資料收你幾千美元,而你的成本是零,趕快去賺翻。

這裡我想謹慎一點,因為網頁資料確實是一門真實的生意,但「你的成本是零」這句話,承擔了這整句中非常多的工作。

你的成本不是零。

你的成本是住宅代理,這是最大宗的支出,而且沒有任何開源專案會附送。

你的成本是 CAPTCHA 解題。

你的成本是當四個目標網站在同一週改版時,工程師投入的工時。

你的成本是儲存、監控,以及值班告警。

那些代理商真正收費的,並不是你剛剛看到的那種免費又好用的爬蟲程式碼。

他們收的是營運層,以及一個保證:就算網站在星期天改版,資料還是會在星期一出現。

這是個真實的服務,也值真正的錢。

只是你要先知道自己到底在賣什麼。

讓你不惹上麻煩的無聊部分

你早就知道這段會來。

能抓取某些內容,不代表你被允許這麼做;而這兩者之間的落差,正是很多人把基礎設施搞到被封鎖、或把公司搞到吃官司的地方。

以下是我實際會做的簡短、非律師版整理:

  • 先讀 robots.txt 並遵守它。 除了道德考量之外,這對你自己也有利:有禮貌的爬蟲活得比較久。
    強硬的爬蟲很快就會被封 IP 段,然後你團隊裡沒有人能再抓那個網域。
  • 在對方限速你之前,先自己限速。 併發數 2 再加一點延遲,通常就夠了。
    沒有人需要對小型網站的來源伺服器每秒送 200 個請求。
  • 檢查服務條款,尤其是任何需要登入的內容。
    「公開可存取」和「你有權限」是兩件不同的事。
  • 個資是另一個法律宇宙。 GDPR、CCPA 以及它們的同類,才不管資料是不是在公開頁面上。
    抓產品價格,和抓含有電子郵件地址的姓名,根本不是同一件事。

Image description

真的。打開 devtools,用 Fetch/XHR 過濾 network 分頁,仔細看看。

我寫過的大概三分之一爬蟲,其實只要對當時就已經存在的某個 JSON 端點下三行指令就夠了。

先檢查這些,再來談爬蟲,而不是直接跳過檢查。

收尾

六個專案,一個概念:網路仍然可讀,能讀它的工具是免費且開放的,而過去兩年出現的大部分阻擋,其實是 TLS 指紋與惰性,而不是真正的鎖。

按工作選工具,不要按星標數選。先從輕量做起。先找 API。做個有禮貌的訪客。

如果你只想帶走一件事:下次你遇到莫名其妙的 403 時,在打開瀏覽器之前,先試試 impersonate="chrome"。你會覺得自己又蠢又開心。

我漏掉了什麼?我知道你們裡面一定有人有一個超冷門的 Go 爬蟲,早就等著找機會介紹。留言告訴我吧,我會全部看。


Image description

AI 代理人寫程式很快。它們也會在不告訴你的情況下,悄悄移除邏輯、改變行為,並引入 bug——你通常要到上線後才發現。

git-lrc 就是為了修正這件事。它會掛接到 git commit,並在每次 diff 送出之前進行審查。60 秒完成設定。完全免費。

歡迎提供任何回饋或貢獻!它已上線、source-available,任何人都能使用。

⭐ 到 GitHub 幫它點星:
{% github=https://github.com/HexmosTech/git-lrc


原文出處:https://dev.to/lovestaco/6-open-source-tools-that-give-you-the-web-back-5hak


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝11   💬1   ❤️6
324
🥈
我愛JS
📝2   💬6   ❤️3
113
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登