Langkau ke kandungan

CrawlForge TeamPasukan Kejuruteraan

9 min bacaan

Ekstrak Data Web Dengan LLM Setempat (Ollama + CrawlForge)

Tugas pengekstrakan web tidak sepatutnya memerlukan penghantaran data yang anda scrape kepada OpenAI. Dengan extract_with_llm dan pemasangan Ollama setempat, pengekstrakan berstruktur kini berjalan sepenuhnya pada mesin anda -- tiada kunci API, tiada kos setiap token, tiada pihak ketiga melihat kandungan anda. Catatan ini ialah penerokaan mendalam: mengapa setempat itu penting, cara menyediakannya, dan bila hendak menggunakannya berbanding alternatif.

Jadual Kandungan

Apakah Pengekstrakan Web LLM?

Pengekstrakan web LLM ialah aliran kerja di mana anda menyerahkan dua perkara kepada model -- HTML mentah sesuatu halaman dan skema yang menerangkan apa yang anda mahu -- dan model memulangkan JSON berstruktur. Ia adalah pengganti moden untuk pemilih CSS yang ditulis tangan. Apabila susun atur tapak berubah, pemilih rosak; LLM menyesuaikan diri.

CrawlForge telah mempunyai ini buat seketika sebagai extract_structured (CSS dahulu, sandaran LLM). Alat extract_with_llm baharu ialah LLM dahulu: setiap pengekstrakan ialah panggilan LLM. Apa yang berubah dalam v4.2.2 ialah pembekal lalai. Sebelum ini anda memerlukan kunci OpenAI atau Anthropic. Kini anda tidak memerlukannya.

Mengapa Ollama Setempat (dan Bukan OpenAI)?

Tiga sebab, dalam susunan kepentingan menurun untuk kebanyakan pasukan.

1. Data yang anda scrape kekal pada mesin anda. Apabila anda memanggil OpenAI, kandungan halaman pergi ke OpenAI. Untuk perisikan persaingan, dokumen undang-undang, data pelanggan, atau apa-apa yang dikawal selia, itu selalunya menjadi penghalang besar. Ollama setempat bermaksud localhost sahaja.

2. LLM adalah percuma. Panggilan gpt-4o-mini berkos sekitar $0.0001 setiap pengekstrakan pada skala. Bunyinya seperti tiada apa-apa -- sehingga anda menjalankan 10,000 pengekstrakan sehari. Ollama ialah $0 tambah elektrik. Anda masih membayar 3 CrawlForge credits setiap panggilan tanpa mengira pembekal.

3. Tiada kunci API baharu untuk diurus. Jika anda mempunyai Ollama, anda mempunyai pembekal. Tiada pendaftaran, tiada amaran bil, tiada putaran.

Tukar gantinya ialah kualiti model. llama3.1:8b pada komputer riba tidak akan menandingi gpt-4o pada halaman yang sukar. Untuk kes 80% (HTML bersih, skema mudah), ia memadai. Untuk 20% (diformat dengan banyak, kabur), anda boleh kembali kepada OpenAI atau Anthropic dalam panggilan yang sama.

Setup: Ollama + extract_with_llm in 5 Minutes

Bash
# 1. Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 2. Pull a model (8B is a good starting point)
ollama pull llama3.1:8b

# 3. Verify it is running
curl http://127.0.0.1:11434/api/tags

Itu bahagian Ollama. Kini daripada CrawlForge (melalui CLI, MCP server, atau API -- mana-mana laluan berfungsi):

Typescript
const response = await fetch('https://crawlforge.dev/api/v1/tools/extract_with_llm', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CRAWLFORGE_API_KEY ?? '',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://news.ycombinator.com/item?id=39820700',
    prompt: 'Extract the story title, points, author, and comment count',
    schema: {
      type: 'object',
      properties: {
        title: { type: 'string' },
        points: { type: 'number' },
        author: { type: 'string' },
        comments_count: { type: 'number' },
      },
      required: ['title', 'points'],
    },
    provider: 'ollama',
    model: 'llama3.1:8b',
  }),
});

const { data } = await response.json();
console.log(data.extracted);
// { title: "Show HN: ...", points: 412, author: "patio11", comments_count: 187 }

Daripada CLI:

Bash
crawlforge extract https://news.ycombinator.com/item?id=39820700 \
  --schema schema.json \
  --provider ollama \
  --model llama3.1:8b

list_ollama_models: Discover What Is On Your Machine

Sebelum menjalankan kelompok besar, periksa kewarasan apa yang sebenarnya dipasang:

Bash
crawlforge extract --list-ollama-models

Atau melalui API:

Typescript
const response = await fetch('https://crawlforge.dev/api/v1/tools/list_ollama_models', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CRAWLFORGE_API_KEY ?? '',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ baseUrl: 'http://localhost:11434' }),
});

const { data } = await response.json();
console.log(data.models);
// [{ name: 'llama3.1:8b', size: 4700000000, modified_at: '2026-05-12T10:00:00Z' }, ...]

Ini berkos 1 credit -- panggilan paling murah dalam katalog. Ia adalah pembantu penemuan, bukan panggilan pengekstrakan. Berguna dalam aliran orientasi, ujian asap CI ("adakah Ollama disediakan dengan betul?"), dan sebagai langkah pertama dalam mana-mana saluran paip LLM setempat.

Pengekstrakan Dipacu Skema

Skema ialah objek JSON Schema piawai. LLM membacanya dan menghasilkan output yang sepadan. Dua corak berfungsi dengan baik:

Corak 1: Skema rata untuk data mudah

Typescript
{
  type: 'object',
  properties: {
    title: { type: 'string' },
    price_usd: { type: 'number' },
    in_stock: { type: 'boolean' },
  },
}

Corak 2: Skema bersarang untuk data yang lebih kaya

Typescript
{
  type: 'object',
  properties: {
    product: {
      type: 'object',
      properties: {
        name: { type: 'string' },
        price: {
          type: 'object',
          properties: {
            amount: { type: 'number' },
            currency: { type: 'string' },
          },
        },
      },
    },
    reviews: {
      type: 'array',
      items: {
        type: 'object',
        properties: {
          author: { type: 'string' },
          rating: { type: 'number' },
          text: { type: 'string' },
        },
      },
    },
  },
}

Semakin kecil skema, semakin boleh dipercayai pengekstrakan -- terutamanya pada model 8B setempat. Jika anda mendapati model menghalusinasikan medan, permudahkan.

Bila Hendak Menggunakan Ollama lwn OpenAI lwn Anthropic

SenarioPembekal disyorkanMengapa
Pengekstrakan kelompok volum tinggiOllamaKos LLM marginal = $0
Data sensitif atau dikawal seliaOllamaLocalhost sahaja
Penaakulan kompleks, pelbagai halamanOpenAI (gpt-4o)Penaakulan terbaik pada halaman sukar
Konteks panjang (50K+ token)Anthropic (Claude)Tetingkap konteks 200K
Prototaip pantas, volum rendahOllamaPersediaan sifar selepas pemasangan
Kandungan kabur (sindiran, slanga)OpenAI atau AnthropicModel lebih besar = penyahkaburan lebih baik

Berita baiknya: menukar pembekal ialah satu perubahan parameter. Anda boleh membuat prototaip pada Ollama, terkena halaman sukar, bertukar kepada provider: "openai" untuk satu panggilan itu, dan teruskan.

Perbandingan Kos

Kos-setiap-1,000-pengekstrakan, dengan andaian halaman purata (~3K token masuk, ~200 token keluar):

PembekalModelKos LLM setiap 1KCrawlForge credits setiap 1KJumlah setiap 1K
Ollama (setempat)llama3.1:8b$0 (elektrik)3,000 credits3,000 credits
Ollama (setempat)llama3.1:70b$0 (elektrik, lebih)3,000 credits3,000 credits
OpenAIgpt-4o-mini~$0.453,000 credits3,000 credits + $0.45
OpenAIgpt-4o~$8.503,000 credits3,000 credits + $8.50
Anthropicclaude-haiku-4-5~$0.303,000 credits3,000 credits + $0.30
Anthropicclaude-sonnet-4-6~$4.503,000 credits3,000 credits + $4.50

CrawlForge credits adalah tetap merentas pembekal -- anda membayar untuk orkestrasi, bukan model. Pada peringkat Hobby kami (5,000 credits/$19/bulan), itu kira-kira 1,650 pengekstrakan LLM sebulan untuk $19 + $0 (jika anda menggunakan Ollama).

Batasan dan Ketepatan

Apa yang Ollama setempat (llama3.1:8b) lakukan dengan baik dalam penanda aras dalaman kami:

  • Halaman produk bersih (Amazon, Shopify): ~95% ketepatan medan
  • Metadata artikel (Substack, Medium): ~92%
  • Bebenang forum (HN, Reddit): ~88%

Apa yang ia bergelut dengannya:

  • Halaman yang banyak dipaparkan dengan JS dengan HTML minimum (gunakan scrape_with_actions dahulu, kemudian ekstrak)
  • Halaman dengan struktur kabur (gunakan model frontier)
  • Skema dengan 20+ medan (pecahkan kepada beberapa pengekstrakan)
  • Kandungan bukan bahasa Inggeris (gunakan model berbilang bahasa seperti mistral)

Jika ketepatan adalah kritikal dan Ollama terlepas medan, pembetulannya biasanya: skema lebih mudah, atau naik taraf kepada provider: "openai" untuk panggilan itu.


Bersedia untuk mengekstrak data tanpa meninggalkan mesin anda? Mula percuma dengan 1,000 credits dan cuba extract_with_llm dengan Ollama setempat anda. Baharu dengan CrawlForge? Baca pengumuman pelancaran v4.2.2 untuk konteks, atau panduan CLI untuk aliran kerja terminal dahulu.

Cuba sendiri — tiada pendaftaran diperlukan

Terokai kesemua 31 alat scraping dan pengekstrakan CrawlForge dalam playground, kemudian mula secara percuma dengan 1,000 credits.

1,000 credits percuma • Sekali sahaja • Tiada kad kredit diperlukan

Tag

  • extract-with-llm
  • Ollama
  • local-AI
  • ai-engineering
  • structured-extraction
  • privacy

Tentang Penulis

CrawlForge Team

Pasukan Kejuruteraan

Membina MCP server web scraping yang paling menyeluruh. Kami mencipta alatan yang membantu pembangun mengekstrak, menganalisis dan mengubah data web untuk aplikasi AI.

Surat berita

Kekal dikemas kini dengan pandangan terkini

Dapatkan tutorial, kemas kini produk dan petua web scraping terus ke peti masuk anda.

Tiada spam. Berhenti melanggan bila-bila masa.

Soalan Lazim

Soalan lazim

01Adakah extract_with_llm berkos credits jika Ollama percuma?

Ya -- 3 CrawlForge credits setiap panggilan tanpa mengira pembekal LLM yang anda gunakan. Credit itu meliputi orkestrasi: fetch halaman, mengendalikan pertahanan anti-bot, mengesahkan respons terhadap skema anda, dan memulangkan JSON berstruktur. Kos LLM itu sendiri adalah berasingan: $0 dengan Ollama, atau harga setiap token dengan OpenAI/Anthropic.

02Model Ollama yang mana paling baik untuk pengekstrakan web?

llama3.1:8b ialah titik permulaan yang disyorkan -- pantas, cukup tepat untuk kebanyakan halaman, dan berjalan pada perkakasan pengguna (8GB RAM minimum). Untuk ketepatan lebih tinggi pada halaman kompleks, cuba llama3.1:70b (memerlukan 48GB RAM). Untuk pengekstrakan berbilang bahasa, mistral atau qwen2.5 berfungsi dengan baik. Elakkan model di bawah 7B parameter -- ia menghalusinasikan medan.

03Bolehkah saya menggunakan instance Ollama jauh dan bukannya localhost?

Ya. Tetapkan pemboleh ubah persekitaran OLLAMA_HOST kepada URL Ollama jauh anda sebelum memanggil extract_with_llm. Ini berguna jika anda menjalankan Ollama pada pelayan GPU khusus dan pekerja CrawlForge anda berada pada mesin yang berbeza. Sambungan masih langsung -- CrawlForge tidak menjadi proksi untuknya.

04Bagaimanakah extract_with_llm dibandingkan dengan extract_structured?

extract_structured ialah CSS dahulu: anda menyediakan pemilih, ia memulangkan data yang sepadan, dan kembali kepada LLM hanya jika pemilih gagal. extract_with_llm ialah LLM dahulu: setiap pengekstrakan ialah panggilan model. Gunakan extract_structured apabila anda tahu pemilih dan ia stabil; gunakan extract_with_llm apabila susun atur halaman tidak diketahui atau kerap berubah.

05Adakah data saya dihantar ke mana-mana apabila saya menggunakan Ollama?

Tiada pihak ketiga melihat data anda apabila pembekal ialah "ollama". HTML yang discrape pergi daripada CrawlForge ke instance Ollama anda (localhost atau pelayan anda sendiri) dan respons kembali. Tiada apa yang dilog atau disimpan di pihak kami melebihi metadata permintaan piawai. Dengan pembekal "openai" atau "anthropic", HTML dihantar kepada vendor itu di bawah terma masing-masing.

06Bagaimana jika halaman mempunyai perlindungan anti-bot?

Gunakan stealth_mode dahulu untuk fetch halaman, kemudian hantar HTML secara langsung kepada extract_with_llm melalui parameter "html"-nya (melangkau langkah fetch). Atau gabungkan dalam satu panggilan: extract_with_llm dengan stealth: true menjadikan fetch menggunakan pelayar stealth dengan putaran cap jari, kemudian menjalankan pengekstrakan LLM pada keputusan.

Teruskan membaca

Artikel Berkaitan

Kejuruteraan AI

4m

MCP server carian web self-hosted

Kebanyakan MCP server yang mendakwa "self-hosted" hanya menjalankan prosesnya secara setempat. CrawlForge boleh menghalakan search_web ke instance SearXNG anda sendiri — dan inilah bahagian yang masih bukan self-hosted.