T3 AI'LE, Türkiye'nin büyük dil modeli (LLM) oluşturma vizyonu kapsamında geliştirilmiş açık kaynaklı bir projedir. Bu proje, kullanıcılardan alınan doğal dil sorgularını web üzerinden aratıp, sonuçları büyük dil modeli ile işleyerek zenginleştirilmiş yanıtlar üretir.
Ana hedefimiz, Türkçe dilinde güçlü bilgi tabanı oluşturarak Türkiye'ye ait özgün ve güncel içerikleri, yapay zeka destekli bir pipeline ile kullanıcıya sunmaktır.
T3 AILE Kasırga, web sitelerinden yapılandırılmış veri çıkarmak için tasarlanmış Python tabanlı bir web kazıyıcı aracıdır. Hem geleneksel HTML kazımayı hem de JavaScript ile oluşturulan sayfaları (SPA'lar) destekler, playwright ile sonsuz kaydırma yönetimi özelliklerine sahiptir.
- 🚀 Etkileşimli CLI - Slash komutları ve otomatik tamamlama ile
- 🌐 JavaScript Desteği - SPAs ve dinamik içerik için Playwright ile
- 📜 Sonsuz Kaydırma Yönetimi - Playwright ile sonsuz kaydırma yönetimi
- 🎯 CSS Seçici Tabanlı alan çıkarma
- 💾 Kalıcı Depolama - Kazıyıcılar ve stratejiler için
- 🔄 İş Akışı Kontrolü - Kazımadan önce siteleri kontrol etme
- 📊 Çoklu Çıktı Formatları - JSON, tablo görünümü, dosya dışa aktarma
- 🔗 Liste/Detay Kazıma - Liste sonuçlarından detay sayfalarını otomatik işleme
- 📦 Konteyner Alanları - Tekrarlayan öğelerden yapılandırılmış veri çıkarma
- 🚅 Çoklu İş Parçacığı Desteği - Detay kazıma için paralel işleme
- 💾 Artımlı Dosya Yazma - Veri kaybını önlemek için gerçek zamanlı kaydetme
- ⏳ Gerçek Zamanlı Durum Görüntüleme - Etkileşimli modda canlı işlem ilerlemesi
- 📤 Dışa/İçe Aktarma - Projeler arasında kazıyıcı yapılandırmalarını paylaşma
- 🔒 Proxy Yönetimi - Proxy rotasyonu ve doğrulama desteği
- 🎭 User-Agent Rotasyonu - Otomatik UA değiştirme ve Playwright stealth
- 🔄 Retry Mekanizması - Exponential backoff ile otomatik yeniden deneme
- ⏱️ Rate Limiting - Domain bazlı hız kontrolü
- 📅 Görev Zamanlayıcı - Cron ve interval ile otomatik kazıma
- 🔄 Otomatik Kaydetme - Sonuçlar standart dosyalara kaydedilir (output.{code}.json)
- 🎯 Doğrudan İşlemler - --with parametreleri ile seçim yapmadan çalışma
# Clone the repository
git clone https://github.com/brkmustu/t3aile_kasirga.git
cd kasirga
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install Playwright browsers (for JavaScript support)
playwright install chromium# Run in interactive mode
python -m kasirga
# Or use CLI commands directly
python -m kasirga scraper create --code mysite --url https://example.com
python -m kasirga check --code mysite
python -m kasirga scrape --code mysite💼 Gelişmiş Özellikler: Proxy yönetimi, user-agent rotasyonu, retry mekanizması, rate limiting ve görev zamanlayıcı için ADVANCED_FEATURES.md dosyasına bakın.
Standard Flow:
┌─────────────┐ ┌──────────────┐ ┌────────────┐ ┌────────────┐
│ Scraper │ --> │ Check │ --> │ Strategy │ --> │ Fields │
│ (Create) │ │ (Analyze) │ │ (Create) │ │ (Define) │
└─────────────┘ └──────────────┘ └────────────┘ └────────────┘
│ │ │ │
v v v v
Website Detect SPA Extraction Field
Definition & Approve Approach Selectors
│
v
┌──────────────┐
│ Scrape │
│ (Execute) │
└──────────────┘
List/Detail Flow:
┌─────────────┐ ┌────────────┐ ┌──────────────┐
│ LIST Scraper│ --> │ Scrape │ --> │ Output URLs │
│ + Fields │ │ (URLs) │ │ (.json) │
└─────────────┘ └────────────┘ └──────────────┘
│
v
┌─────────────┐ ┌────────────┐ ┌──────────────┐
│DETAIL Scraper│ --> │ Auto-load │ --> │ Multi-thread │
│ (--with list)│ │ List URLs │ │ Scraping │
└─────────────┘ └────────────┘ └──────────────┘
# Standart site
kasirga scraper create --code mysite --url https://example.com
# Sonsuz kaydırmalı site (maksimum kaydırma sayısını ayarla)
kasirga scraper create --code scroll-site --url https://example.com --max-scrolls 20
# Liste kazıyıcı (birden fazla öğe içeren sayfalar için)
kasirga scraper create --code products --url https://example.com/products --type list --base-url https://example.com
# Detay kazıyıcı (bireysel öğe sayfaları için) - --with parametresi gerekli
# URL isteğe bağlıdır çünkü liste kazıyıcısından URL'leri kullanacaktır
kasirga scraper create --code product-detail --type detail --with productsKazımadan önce, sitenin JavaScript renderlaması gerektirip gerektirmediğini algılamak için siteyi kontrol etmelisiniz:
kasirga check --code mysite
# Kontrol şunları yapacaktır:
# - Sitenin bir SPA olup olmadığını algılar (React, Vue, Angular, vb.)
# - Sonsuz kaydırma desenlerini belirler
# - Tembel yüklenen içeriği algılar
# - Devam etmek için onayınızı ister# Önce kazıyıcıyı seçin
kasirga scraper select mysite
# Manuel bir strateji oluşturun
kasirga strategy create --name main --manual# Düzenli alanlar ekle
kasirga fields add -n title -s "h1.title" # Metin çıkarma
kasirga fields add -n price -s "span.price" # Tek değer
kasirga fields add -n items -s "div.item" -m # Çoklu değerler
kasirga fields add -n link -s "a.next" -t attribute -a href # Öznitelik
kasirga fields add -n count -s ".comment" -t count # Öğeleri sayma
# Veya yapılandırılmış veri için konteyner alanı kullan
kasirga fields add-container -n products -s "div.product"
# Sonra alt alanları etkileşimli olarak tanımla# Temel kazıma (output.{scraper-code}.json dosyasına otomatik kaydeder)
kasirga scrape
# Sonsuz kaydırma için özel kaydırma ayarları ile
kasirga scrape --max-scrolls 30
# Belirli bir dosyaya kaydet
kasirga scrape --output data.json --jsonKasırga, otomatik tamamlama ve komut geçmişi ile güçlü bir etkileşimli mod sunar:
python -m kasirgaTüm mevcut komutları otomatik tamamlama ile görmek için / yazın:
/scraper- Kazıyıcıları yönetme (oluştur/seç/listele/güncelle)/strategy- Stratejileri yönetme (oluştur/seç/listele)/fields- Çıkarılacak alanları tanımlama (ekle/konteyner-ekle/kaldır/listele)/check- Siteyi analiz etme ve kazıma için onaylama/scrape- Mevcut yapılandırma ile kazımayı yürütme/list- Kazıyıcıları, stratejileri veya alanları listeleme/status- Mevcut yapılandırmayı gösterme/clear- Ekranı temizleme/help- Detaylı yardım gösterme/exit- Uygulamadan çıkma
Ctrl+C- ÇıkışCtrl+L- Ekranı temizleCtrl+H- Yardımı aç/kapatTab- Otomatik tamamla (slash komutlarıyla da çalışır!)↑/↓- Komut geçmişiPageUp/PageDown- Mesajları kaydırESC- Yardımı veya komut listesini kapat (açıkken)/- Tüm mevcut komutları göster
╭─────────────────── Kasırga Web Scraper ───────────────────╮
│ Welcome to Kasırga Interactive Mode! 🚀 │
│ │
│ Type help for available commands or exit to quit. │
│ Use ↑/↓ to navigate command history, Tab for suggestions. │
╰───────────────────────────────────────────────────────────╯
Kasırga> /scraper create --code news --url https://news.site.com
✓ Created scraper 'news' for https://news.site.com
Scraper 'news' is now selected
[news]> /check
Checking https://news.site.com...
╭───── Check Results ─────╮
│ URL: https://news.site.com │
│ Requires JavaScript: Yes │
│ Page size: 45,234 bytes │
│ Frameworks: React │
│ Infinite scroll: Yes │
╰─────────────────────────╯
Approve this scraper for scraping? (Y/n): y
✓ Scraper 'news' approved for scraping
[news]> /strategy create --name articles --manual
✓ Created manual strategy 'articles' (code: articles)
[news] [articles]> /fields add -n title -s "h2.article-title" -m
✓ Added field 'title'
Will extract multiple matches
[news] [articles]> /scrape --max-scrolls 5
Scraping https://news.site.com...
Using Playwright for JavaScript rendering...
Max scrolls: 5
✓ Scraping completed successfully
┌─────────────── Scraped Data ───────────────┐
│ Field │ Value │
├───────┼────────────────────────────────────┤
│ title │ Breaking: Major Discovery... │
│ │ Scientists Announce New... │
│ │ Economy Shows Signs of... │
│ │ Sports: Championship Finals... │
│ │ Technology: AI Breakthrough... │
│ │ ... and 47 more items │
└───────┴────────────────────────────────────┘# Yeni bir kazıyıcı oluştur
kasirga scraper create --code <code> --url <url> [options]
# Seçenekler:
# --type <type> Kazıyıcı türü: list veya detail
# --with <list-code> Liste kazıyıcı kodu (detail türü için gerekli)
# --base-url <url> Liste kazıyıcıları için temel URL
# --max-scrolls <n> Sonsuz kaydırma için maksimum kaydırma sayısı (varsayılan: 10)
# --scroll-start <n> Bu yüzdeden kaydırmaya başla 0-100 (varsayılan: 0)
# --scroll-step <n> Her seferinde kaydırılacak piksel (varsayılan: en alta)
# Kazıyıcı yapılandırmasını güncelle
kasirga scraper update <code> [options]
# Tüm kazıyıcıları listele
kasirga scraper list
# Bir kazıyıcı seç
kasirga scraper select <code>
# Mevcut kazıyıcıyı göster
kasirga scraper current
# Bir kazıyıcıyı sil
kasirga scraper delete <code>
# Kazıyıcıları dışa aktar
kasirga scraper export --output scrapers.json # Tüm kazıyıcıları dışa aktar
kasirga scraper export -o site.json -c mysite # Tek kazıyıcıyı dışa aktar
kasirga scraper export -o sites.json -c site1 -c site2 # Birden fazla kazıyıcıyı dışa aktar
# Kazıyıcıları içe aktar
kasirga scraper import <file> [--merge|--skip]
# Detaylı durumu göster
kasirga scraper status# Sitenin JavaScript renderlaması gerektirip gerektirmediğini kontrol et
kasirga check [--code <code>] [--force]
# Kontrol komutu şunları yapacaktır:
# - JavaScript çerçevelerini algılar (React, Vue, Angular, Next.js, Gatsby)
# - Sonsuz kaydırma desenlerini belirler
# - Tembel yüklenen görselleri bulur
# - Sayfa özelliklerini ölçer
# - Devam etmek için onay ister
# Detay kazıyıcıları için:
# - Yapılandırılmış liste kazıyıcısından ilk URL'yi otomatik kullanır
# - URL yapısının doğru çalıştığını doğrular
# - Detay sayfası yapısını test eder# Bir strateji oluştur
kasirga strategy create --name <name> [--manual]
# Bir strateji seç
kasirga strategy select <code>
# Stratejileri listele
kasirga strategy list# Bir alan ekle (kazıyıcı/strateji seçimi --with-scraper/--with-strategy ile isteğe bağlı)
kasirga fields add -n <name> -s <selector> [-t <type>] [-a <attr>] [-m] [--with-scraper <code>] [--with-strategy <code>]
# Alan seçenekleri:
# -n, --name Alan adı
# -s, --selector CSS seçici
# -t, --type Alan türü: text (varsayılan), attribute, html, count, container
# -a, --attribute Öznitelik adı (attribute türü için gerekli)
# -m, --multiple Tüm eşleşen öğeleri çıkar
# --with-scraper Belirli bir kazıyıcı kullan (mevcut seçimi geçersiz kılar)
# --with-strategy Belirli bir strateji kullan (mevcut seçimi geçersiz kılar)
# --override Aynı isimdeki mevcut alanı geçersiz kıl
# Yapılandırılmış veri için konteyner alanı ekle
kasirga fields add-container -n <name> -s <container-selector> [--with-scraper <code>] [--with-strategy <code>]
# Sonra alt alanları etkileşimli olarak tanımla
# Bir alanı kaldır
kasirga fields remove <name> [--with-scraper <code>] [--with-strategy <code>]
# Tüm alanları listele
kasirga fields list [--with-scraper <code>] [--with-strategy <code>]
# Tüm alanları temizle
kasirga fields clear [--with-scraper <code>] [--with-strategy <code>]# Kazımayı yürüt
kasirga scrape [options]
# Seçenekler:
# --code <code> Belirli bir kazıyıcı kullan (mevcut seçimi geçersiz kılar)
# --strategy <code> Belirli bir strateji kullan
# --output <file> Sonuçları dosyaya kaydet
# --json JSON olarak çıktı
# --max-scrolls <n> Maksimum kaydırma sayısını geçersiz kıl
# --scroll-start <n> Kaydırma başlangıç yüzdesini geçersiz kıl
# --scroll-step <n> Kaydırma adım pikselini geçersiz kıl
# --with <list-code> Detay kazıma için liste kazıyıcısını geçersiz kıl
# --with-check Kazıyıcı onaylanmadıysa kontrol komutunu çalıştır
# --with-approve Kontrol sonrası otomatik onayla (--with-check gerektirir)
# --threads <n> Detay kazıma için paralel iş parçacığı sayısı (varsayılan: 1)
# --resume Son kazınan URL'den detay kazımaya devam et
# Not: Detay kazıyıcıları otomatik olarak yapılandırılmış liste kazıyıcılarını kullanır
# Çıktı belirtilmezse output.{scraper-code}.json dosyasına otomatik kaydedilirKasırga, şu durumlarda kazıma için güçlü bir desen destekler:
- Önce öğe URL'lerini almak için bir liste sayfası kazınır
- Sonra tam bilgi için her detay sayfası kazınır
# 1. Ürün listesi sayfası için bir liste kazıyıcı oluştur
kasirga scraper create --code products-list --url https://shop.com/products \
--type list --base-url https://shop.com
# 2. Bireysel ürün sayfaları için bir detay kazıyıcı oluştur
# URL gerekmez - liste kazıyıcısından URL'leri kullanacaktır
kasirga scraper create --code product-detail --type detail --with products-list
# 3. Her iki kazıyıcıyı da kontrol et
kasirga check --code products-list # Liste sayfasını kontrol et
kasirga check --code product-detail # Liste çıktısından ilk URL'yi otomatik kullanır
# 4. Her ikisi için stratejiler oluştur
kasirga scraper select products-list
kasirga strategy create --name listing --manual
# ÖNEMLİ: Liste stratejisi 'url' veya 'link' adında bir alana SAHİP OLMALIDIR
kasirga fields add -n title -s "h3.product-title" -m
kasirga fields add -n price -s "span.price" -m
kasirga fields add -n url -s "a.product-link" -t attribute -a href -m
# 5. Detay kazıyıcı stratejisini ayarla
kasirga scraper select product-detail
kasirga strategy create --name details --manual
kasirga fields add -n name -s "h1.product-name"
kasirga fields add -n description -s "div.description"
kasirga fields add -n specs -s "table.specs"# 1. Önce, tüm ürün URL'lerini almak için listeyi kazı
kasirga scrape --code products-list
# Bu otomatik olarak output.products-list.json dosyasına kaydedilir
# 2. Sonra tüm detay sayfalarını kazı (yapılandırılmış listeyi otomatik kullanır)
kasirga scrape --code product-detail
# Daha hızlı işleme için, birden fazla iş parçacığı kullan
kasirga scrape --code product-detail --threads 5Detay kazıyıcı şunları yapacaktır:
- Liste kazıyıcı çıktısını yükler
- 'url' veya 'link' alanından URL'leri çıkarır
- Gerekirse temel URL ile birleştirir
- Her detay sayfasını paralel olarak kazır (threads > 1 ise)
- Veri kaybını önlemek için sonuçları artımlı olarak kaydeder
- Hız istatistikleri ile gerçek zamanlı ilerlemeyi gösterir
Konteyner alanları, ürün kartları, makale listeleri vb. gibi tekrarlayan öğelerden yapılandırılmış veri çıkarmanıza olanak tanır.
# Bir konteyner alanı ekle
kasirga fields add-container -n products -s "div.product-card"
# Sonra alt alanları etkileşimli olarak tanımla:
# Alt alan adı: title
# CSS seçici: h3.product-title
# Tür: text
#
# Alt alan adı: price
# CSS seçici: span.price
# Tür: text
#
# Alt alan adı: url
# CSS seçici: a.product-link
# Tür: attribute
# Öznitelik adı: hrefResult:
{
"products": [
{
"title": "Product 1",
"price": "$29.99",
"url": "/products/1"
},
{
"title": "Product 2",
"price": "$39.99",
"url": "/products/2"
}
]
}Kasırga, sonsuz kaydırma davranışı üzerinde ince ayarlı kontrol sağlar:
# Maksimum kaydırma sayısını ayarla
kasirga scraper create --code feed --url https://example.com --max-scrolls 20# Sayfanın %50'sinden kaydırmaya başla
kasirga scraper create --code middle --url https://example.com --scroll-start 50# En alta gitmek yerine her seferinde 500 piksel kaydır
kasirga scraper create --code careful --url https://example.com --scroll-step 500# %25'ten başla, her seferinde 300px kaydır, maksimum 15 kaydırma
kasirga scraper create --code custom --url https://example.com \
--scroll-start 25 \
--scroll-step 300 \
--max-scrolls 15
# Çalışma zamanında geçersiz kıl
kasirga scrape --scroll-start 40 --max-scrolls 10Kontrol komutu otomatik olarak şunları algılar:
- Popüler çerçeveler (React, Vue, Angular, Next.js, Gatsby)
- Dinamik içerik yükleme desenleri
- Tembel yüklenen görseller
- AJAX tabanlı içerik güncellemeleri
- text (varsayılan) - Öğelerden metin içeriği çıkarma
- attribute - Belirli öznitelik değerlerini çıkarma (href, src, data-*, vb.)
- html - Etiketler dahil ham HTML çıkarma
- count - Eşleşen öğeleri sayma
- container - Tekrarlayan öğelerden yapılandırılmış veri çıkarma (kartlar, öğeler, vb.)
Tüm eşleşen öğeleri çıkarmak için -m bayrağını kullanın:
# Tüm ürün adlarını çıkar
kasirga fields add -n products -s ".product-name" -m
# Tüm görsel URL'lerini çıkar
kasirga fields add -n images -s "img" -t attribute -a src -m# Kaydırma ayarları ile kazıyıcı oluştur
kasirga scraper create --code shop --url https://shop.example.com/products \
--max-scrolls 25 --scroll-start 10 # Başlık bannerlarını atla
# Siteyi kontrol et
kasirga check --code shop
# Onayla? Y
# Strateji oluştur
kasirga scraper select shop
kasirga strategy create --name products --manual
# Ürün kartları için konteyner alanı kullan
kasirga fields add-container -n products -s "div.product-card"
# Alt alanları tanımla:
# - name: h3.title (text)
# - price: span.price (text)
# - image: img (attribute: src)
# - url: a.details (attribute: href)
# - inStock: .stock-status (text)
# Kazı
kasirga scrape --output products.json --json# Üstteki öne çıkan makaleleri atla, ana akışı al
kasirga scraper create --code news-feed --url https://news.site.com \
--scroll-start 30 \
--scroll-step 400 \
--max-scrolls 10
kasirga check --code news-feed
kasirga strategy create --name articles --manual
# Makale kartlarını çıkar
kasirga fields add-container -n articles -s "article.news-item"
# Alt alanlar: headline, summary, author, date, url
kasirga scrape --output news.json --json# Adım 1: Emlak ilanları için liste kazıyıcı oluştur
kasirga scraper create --code properties-list --url https://realestate.com/properties \
--type list --base-url https://realestate.com --max-scrolls 20
kasirga check --code properties-list
kasirga scraper select properties-list
kasirga strategy create --name listings --manual
# Liste sayfasından temel bilgileri ve URL'leri çıkar
kasirga fields add -n title -s "h3.property-title" -m
kasirga fields add -n price -s "span.price" -m
kasirga fields add -n location -s "div.location" -m
kasirga fields add -n url -s "a.property-link" -t attribute -a href -m
# Adım 2: Tam emlak bilgileri için detay kazıyıcı oluştur
kasirga scraper create --code property-detail --type detail --with properties-list
kasirga check --code property-detail
kasirga scraper select property-detail
kasirga strategy create --name full-details --manual
# Detaylı bilgileri çıkar
kasirga fields add -n title -s "h1.property-name"
kasirga fields add -n price -s "div.price-main"
kasirga fields add -n description -s "div.description"
kasirga fields add -n bedrooms -s "span.bedrooms"
kasirga fields add -n bathrooms -s "span.bathrooms"
kasirga fields add -n area -s "span.area"
kasirga fields add -n images -s "div.gallery img" -t attribute -a src -m
kasirga fields add -n amenities -s "ul.amenities li" -m
# Adım 3: Kazıma iş akışını yürüt
# Önce tüm emlak URL'lerini al
kasirga scrape --code properties-list
# Sonra her emlak için tam detayları kazı (otomatik olarak properties-list kullanır)
kasirga scrape --code property-detail --threads 8
# Onaylanmadıysa otomatik kontrol ile
kasirga scrape --code property-detail --with-check --with-approve --threads 8
# Kesintiye uğrarsa devam et
kasirga scrape --code property-detail --threads 8 --resume# Etkileşimli mod örneği
python -m kasirga
Kasırga> /scraper create --code news --url https://news.com/article/123
Kasırga> /check
# Kontrol sonrası kazıyıcıyı onayla
[news]> /strategy create --name article --manual
[news] [article]> /fields add -n headline -s "h1.headline"
[news] [article]> /fields add -n author -s "span.author"
[news] [article]> /fields add -n date -s "time" -t attribute -a datetime
[news] [article]> /fields add -n content -s "div.content p" -m
[news] [article]> /scrape --output article.json --json#!/bin/bash
# scrape_batch.sh - Birden fazla URL'yi işle
URLS=(
"https://example.com/page1"
"https://example.com/page2"
"https://example.com/page3"
)
# Önce, tüm kazıyıcıları oluştur ve kontrol et
for i in "${!URLS[@]}"; do
url="${URLS[$i]}"
code="batch_$i"
kasirga scraper create --code "$code" --url "$url"
kasirga check --code "$code" <<< "Y" # Otomatik onayla
done
# Sonra hepsini kazı
for i in "${!URLS[@]}"; do
code="batch_$i"
kasirga scraper select "$code"
kasirga strategy create --name extract --manual
kasirga fields add -n title -s "h1"
kasirga fields add -n content -s "main"
kasirga scrape --output "page_$i.json" --json
doneKontrol komutu, doğru kazıma yöntemini sağlamak için zorunludur:
kasirga check --code mysite- Tarayıcı DevTools'u kullanın (F12) → Öğeyi İncele
- Öğeye sağ tıklayın → Kopyala → Seçiciyi kopyala
- Tarayıcı konsolunda test edin:
document.querySelectorAll('your-selector')
- SPA'lar için, kontrol komutunun JavaScript gereksinimlerini algılamasına her zaman izin verin
- Sonsuz kaydırma için, makul kaydırma limitleriyle başlayın (10-20)
- Her kaydırmada kaç öğe yüklendiğini görmek için logları izleyin
# Her kaydırmada kaç öğe yüklendiğini kontrol et
kasirga scrape --max-scrolls 5
# Daha fazla öğeye ihtiyacın varsa, kademeli olarak artır
kasirga scrape --max-scrolls 15- Genel etiketler yerine ID'leri ve benzersiz sınıfları tercih edin
- Esneklik için öznitelik seçicileri kullanın:
[data-testid="price"] - Hassasiyet için seçicileri birleştirin:
div.product > span.price
- Benzer sayfalar için kazıyıcıları ve stratejileri yeniden kullanın
- Gereksiz yüklemeyi önlemek için uygun max-scrolls değerini ayarlayın
- Yalnızca gerekli veriyi çıkarmak için alan filtreleme kullanın
- Detay kazıma için çoklu iş parçacığı kullanın:
--threads 8
- Yedekleme için kazıyıcıları dışa aktarın:
kasirga scraper export -o backup.json - İçe/dışa aktarma ile projeler arasında kazıyıcıları paylaşın
- Genel bakış ve istatistikleri görmek için
kasirga scraper statuskullanın
Kasırga tüm yapılandırmaları ~/.kasirga/ dizininde saklar:
scrapers/- Kazıyıcı tanımları ve ayarlarıstrategies/- Çıkarma stratejileri ve alanlarıhistory- Etkileşimli mod için komut geçmişi
Önce kontrol komutunu çalıştırın:
kasirga check --code yourcodeMaksimum kaydırma sayısını artırın:
kasirga scrape --max-scrolls 30
# Veya kazıyıcı varsayılanını güncelle:
kasirga scraper update yourcode --max-scrolls 30# Playwright tarayıcılarını yeniden kur
playwright install chromium
# Veya tüm tarayıcıları kur
playwright install- Seçicileri tarayıcı DevTools'unda doğrulayın
- Sitenin JavaScript gerektirip gerektirmediğini kontrol edin (kontrol komutunu çalıştırın)
- SPA'lar için, kontrolün bunu doğru algıladığından emin olun
- Daha spesifik seçiciler deneyin
MIT Lisansı - detaylar için LICENSE dosyasına bakın