Crawl4AI:AI驅(qū)動的網(wǎng)頁抓取神器,結(jié)合LLM實(shí)現(xiàn)自動化數(shù)據(jù)提取與處理 精華
我們將介紹 Crawl4AI 以及如何利用它來從不同網(wǎng)站或互聯(lián)網(wǎng)上的其他任何地方爬取和抓取數(shù)據(jù),只要該網(wǎng)站支持抓取或爬取功能。
當(dāng)我們與 ChatGPT 一起工作,構(gòu)建可以連接互聯(lián)網(wǎng)外部數(shù)據(jù)源的 Rag 系統(tǒng)時,爬取和抓取數(shù)據(jù)就變得非常重要,因為你需要抓取并獲取外部數(shù)據(jù)、實(shí)時數(shù)據(jù)或現(xiàn)實(shí)世界的數(shù)據(jù),我們通常在這一過程中遇到困難。
我將介紹一個名為 Crawl4AI 的開源工具,這是一個 GitHub 上的開源項目,任何人都可以使用,只需幾行代碼,你就可以完成數(shù)據(jù)提取,隨后你可以構(gòu)建問答系統(tǒng)、信息發(fā)現(xiàn)工具或聊天機(jī)器人應(yīng)用程序。
讓我們跳轉(zhuǎn)到實(shí)際操作中,看看如何做到這一點(diǎn)。這是他們的 GitHub 倉庫頁面,你可以看到這是一個開源的 LLM 友好型網(wǎng)頁爬蟲和抓取工具。
他的一個優(yōu)點(diǎn)是,當(dāng)你提取數(shù)據(jù)后,它會將數(shù)據(jù)返回為 Markdown 格式。在我看來,當(dāng)你處理 LLM 時,Markdown 格式是最好的格式。
這就是為什么 LlamaIndex 也采用這種方式進(jìn)行數(shù)據(jù)提取,他們有一個選項可以選擇文本或 Markdown 格式。當(dāng)你選擇 Markdown 時,你會得到從不同文件格式中提取的數(shù)據(jù)存儲為 Markdown 文件格式。
我認(rèn)為 LLM 非常適應(yīng) Markdown 格式,這也是他們返回數(shù)據(jù)為 Markdown 格式的原因,這真的很棒。
現(xiàn)在我已經(jīng)安裝了 Crawl4AI,從他們的源代碼安裝的,沒有使用 pip 安裝,但你可以這樣做,你也可以通過 Docker 進(jìn)行設(shè)置。
完成安裝后,下一步當(dāng)然是導(dǎo)入這個庫:`from crawl4ai import WebCrawler`。
接下來我們將創(chuàng)建一個 web_crawler 的實(shí)例。我創(chuàng)建了一個變量名為 `crawler`,并初始化它。你可以看到,我初始化了它,它顯示“正在初始化本地 selenium 爬蟲策略”。
這是什么意思呢?這其實(shí)是一個基于已有工具的包裝器,當(dāng)然,所有開發(fā)者的功勞都?xì)w功于他們,因為他們讓我們的任務(wù)變得更簡單了。
你不再需要關(guān)注編寫或使用 Selenium 或其他類似的 GUI 工具來抓取數(shù)據(jù),所有的這些都已經(jīng)為你處理好了。你只需要使用這個庫,傳入你的鏈接,然后得到提取的數(shù)據(jù),就這么簡單。
現(xiàn)在我們已經(jīng)有了 crawler,接下來你需要使用 `warm_up` 來加載必要的模型。所以我們來 `crawler.warm_up`。你可以運(yùn)行這個命令,它會預(yù)熱 web_crawler 并設(shè)置一些日志等信息。
現(xiàn)在 web_crawler 已準(zhǔn)備好進(jìn)行爬取了。運(yùn)行這個步驟后,你已經(jīng)準(zhǔn)備好在一個 URL 上運(yùn)行爬蟲了。
我們來試一下這個功能,運(yùn)行爬蟲并傳入一個 URL。比如,這個網(wǎng)站的一篇文章:
提取完成后,你可以使用 `result.markdown` 來顯示提取結(jié)果,
這里列出了所有這篇文章的信息,(我放到Gemini中翻譯了)
你可以將這些數(shù)據(jù)保存為 Markdown 格式,甚至基于這些數(shù)據(jù)構(gòu)建聊天機(jī)器人。
你還可以將這個工具與 OpenAI 或其他 LLM 結(jié)合使用,從而以結(jié)構(gòu)化的方式獲取數(shù)據(jù)。
總的來說,Crawl4AI 是一個非常實(shí)用的工具,特別是在你需要構(gòu)建外部數(shù)據(jù)連接工具或收集動態(tài)數(shù)據(jù)時。這樣的工具通常可以和Langchain、CrewAI這些Agent框架配合使用,或者說充當(dāng)其中的 Tools。
你也可以設(shè)置任務(wù)來定時抓取數(shù)據(jù),并將其與 LLM 或其他結(jié)構(gòu)化數(shù)據(jù)處理工具結(jié)合使用。
本文轉(zhuǎn)載自 ??AI進(jìn)修生??,作者: Aitrainee
