LLM Scraper 是一個 TypeScript 庫,允許您使用大語言模型從任何網頁提取結構化數據。該項目由 mishushakov 開發,託管在 GitHub 上,是一個創新的網頁數據提取解決方案。
項目支持4種格式化模式:
html
- 加載原始HTMLmarkdown
- 加載markdown格式text
- 加載提取的文本(使用 Readability.js)image
- 加載屏幕截圖(僅多模態)在底層,它使用函數調用將頁面轉換為結構化數據。這種方法利用了大語言模型的理解能力,能夠智能地解析和提取網頁內容。
npm i zod playwright llm-scraper
npm i @ai-sdk/openai
import { openai } from '@ai-sdk/openai'
const llm = openai.chat('gpt-4o')
npm i @ai-sdk/openai
import { createOpenAI } from '@ai-sdk/openai'
const groq = createOpenAI({
baseURL: 'https://api.groq.com/openai/v1',
apiKey: process.env.GROQ_API_KEY,
})
const llm = groq('llama3-8b-8192')
npm i ollama-ai-provider
import { ollama } from 'ollama-ai-provider'
const llm = ollama('llama3')
import { LlamaModel } from 'node-llama-cpp'
const llm = new LlamaModel({
modelPath: 'model.gguf'
})
import LLMScraper from 'llm-scraper'
const scraper = new LLMScraper(llm)
import { chromium } from 'playwright'
import { z } from 'zod'
import { openai } from '@ai-sdk/openai'
import LLMScraper from 'llm-scraper'
// 啟動瀏覽器實例
const browser = await chromium.launch()
// 初始化LLM提供商
const llm = openai.chat('gpt-4o')
// 創建新的LLMScraper
const scraper = new LLMScraper(llm)
// 打開新頁面
const page = await browser.newPage()
await page.goto('https://news.ycombinator.com')
// 定義提取內容的模式
const schema = z.object({
top: z
.array(
z.object({
title: z.string(),
points: z.number(),
by: z.string(),
commentsURL: z.string(),
})
)
.length(5)
.describe('Top 5 stories on Hacker News'),
})
// 運行爬蟲
const { data } = await scraper.run(page, schema, {
format: 'html',
})
// 顯示LLM結果
console.log(data.top)
await page.close()
await browser.close()
使用 stream
函數替代 run
函數可以獲得部分對象流(僅限 Vercel AI SDK):
// 以流式模式運行爬蟲
const { stream } = await scraper.stream(page, schema)
// 流式傳輸LLM結果
for await (const data of stream) {
console.log(data.top)
}
使用 generate
函數可以生成可重用的 playwright 腳本:
// 生成代碼並在頁面上運行
const { code } = await scraper.generate(page, schema)
const result = await page.evaluate(code)
const data = schema.parse(result)
// 顯示解析結果
console.log(data.news)
LLM Scraper 是一個創新的網頁數據提取工具,將傳統的網頁爬蟲技術與現代AI能力相結合。通過利用大語言模型的理解能力,它能夠更智能、更準確地從複雜網頁中提取結構化數據,為數據收集和分析提供了全新的解決方案。