LLM Scraper ist eine TypeScript-Bibliothek, die es Ihnen ermöglicht, mithilfe von Large Language Models (LLMs) strukturierte Daten von beliebigen Webseiten zu extrahieren. Das Projekt wurde von mishushakov entwickelt, wird auf GitHub gehostet und stellt eine innovative Lösung für die Extraktion von Webdaten dar.
Das Projekt unterstützt 4 Formatierungsmodi:
html
- Lädt das ursprüngliche HTMLmarkdown
- Lädt das Markdown-Formattext
- Lädt den extrahierten Text (mit Readability.js)image
- Lädt Screenshots (nur Multimodal)Im Kern verwendet es Funktionsaufrufe, um Seiten in strukturierte Daten umzuwandeln. Dieser Ansatz nutzt die Verständnisfähigkeit von LLMs, um Webinhalte intelligent zu analysieren und zu extrahieren.
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'
// Browserinstanz starten
const browser = await chromium.launch()
// LLM-Anbieter initialisieren
const llm = openai.chat('gpt-4o')
// Neuen LLMScraper erstellen
const scraper = new LLMScraper(llm)
// Neue Seite öffnen
const page = await browser.newPage()
await page.goto('https://news.ycombinator.com')
// Schema für die zu extrahierenden Inhalte definieren
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'),
})
// Scraper ausführen
const { data } = await scraper.run(page, schema, {
format: 'html',
})
// LLM-Ergebnisse anzeigen
console.log(data.top)
await page.close()
await browser.close()
Verwenden Sie die stream
-Funktion anstelle der run
-Funktion, um teilweise Objektströme zu erhalten (nur Vercel AI SDK):
// Scraper im Streaming-Modus ausführen
const { stream } = await scraper.stream(page, schema)
// LLM-Ergebnisse streamen
for await (const data of stream) {
console.log(data.top)
}
Verwenden Sie die generate
-Funktion, um wiederverwendbare Playwright-Skripte zu generieren:
// Code generieren und auf der Seite ausführen
const { code } = await scraper.generate(page, schema)
const result = await page.evaluate(code)
const data = schema.parse(result)
// Analyseergebnisse anzeigen
console.log(data.news)
LLM Scraper ist ein innovatives Tool zur Extraktion von Webdaten, das traditionelle Web-Crawling-Techniken mit modernen KI-Fähigkeiten kombiniert. Durch die Nutzung der Verständnisfähigkeit von Large Language Models kann es strukturierte Daten intelligenter und genauer von komplexen Webseiten extrahieren und bietet so eine völlig neue Lösung für die Datenerfassung und -analyse.