00:00:00Saat Anda butuh scraper untuk RAG, masalahnya bukan cara mendapatkan datanya,
00:00:03tapi cara membersihkannya.
00:00:04JavaScript merusak segalanya, HTML sangat berantakan,
00:00:07dan kita hanya membuang waktu mencoba membuatnya layak pakai untuk LLM.
00:00:11Solusinya adalah CrawlForAI.
00:00:13Dibuat khusus untuk AI, mendukung sistem async,
00:00:15menangani JavaScript, dan menghasilkan markdown atau JSON yang bersih,
00:00:18serta berjalan enam kali lebih cepat daripada scraper Python tradisional seperti Scrapy.
00:00:23Kita mendapatkan data siap-model lebih cepat dari yang pernah saya lihat.
00:00:26Bagaimana cara kerjanya? Apa bedanya?
00:00:29Itulah pertanyaannya.
00:00:30[MUSIK]
00:00:35Jadi, apa sebenarnya CrawlForAI itu?
00:00:37Awalnya, ini terlihat seperti crawler Python biasa,
00:00:40tapi ini tidak dibuat untuk scraping, melainkan untuk AI.
00:00:43Inilah perbedaannya.
00:00:44Kebanyakan crawler memberi kita HTML mentah,
00:00:46sedangkan CrawlForAI memberi markdown bersih atau JSON terstruktur yang siap untuk LLM.
00:00:52Ia menangani JavaScript menggunakan Playwright,
00:00:54berjalan secara async sehingga bisa diskalakan,
00:00:57dan memiliki mode prefetch yang melewati render berat saat Anda hanya butuh tautannya.
00:01:01Ini penting karena jika kita membangun chatbot,
00:01:04asisten, atau agen ini, masalah kita bukanlah crawling,
00:01:08tapi mengubah data halaman web yang berantakan menjadi data siap pakai.
00:01:11CrawlForAI menghilangkan seluruh masalah tersebut dengan cepat.
00:01:15Jika Anda menyukai konten seperti ini, pastikan untuk subscribe.
00:01:18Kami punya video baru setiap saat.
00:01:20Mari mulai dengan cara sederhana. Ini crawl dasar yang saya buat.
00:01:23Banyak bagian yang saya ambil dari repo dan dokumen mereka,
00:01:25dan saya hanya mengubah beberapa baris agar bisa berjalan.
00:01:28Saya mengimpor AsyncWebCrawler yang menangani permintaan web asinkron untuk pipeline AI.
00:01:34Lalu saya memanggil perintah run pada URL berita teknologi, itu saja.
00:01:38Sekarang lihat hasilnya.
00:01:40Ini bukan HTML mentah yang kita dapatkan,
00:01:43melainkan markdown yang bersih, JSON yang bersih.
00:01:45Judul terstruktur, tautan tetap terjaga,
00:01:47dan di balik layar, ia mengambil halaman,
00:01:50membedah DOM, menghapus gangguan,
00:01:52dan memeringkat konten sehingga kita bisa menyimpan bagian penting tanpa jargon tambahan.
00:01:57Kini, jika ingin membuat peringkas berita atau prototipe RAG,
00:02:02kita tidak perlu menulis skrip pembersih,
00:02:04cukup masukkan datanya langsung ke model Anda.
00:02:07Saya mengira ini hanyalah alat scraping biasa,
00:02:11tapi yang kita dapatkan adalah data yang sudah siap saji.
00:02:14Selisih itu berarti penghematan waktu.
00:02:17Sekarang, ini menjadi jauh lebih menarik.
00:02:19Saat saya mencobanya,
00:02:20Anda mungkin berpikir me-render setiap halaman itu perlu.
00:02:23Ternyata tidak selalu begitu. Lihat ini.
00:02:25Ini crawler yang sama,
00:02:27tapi sekarang kita atur prefetch ke true.
00:02:30Saya akan mencoba Hacker News.
00:02:31Lihat seberapa cepat ini berjalan?
00:02:33Kecepatannya benar-benar luar biasa.
00:02:35Alih-alih me-render setiap halaman,
00:02:37ia mengambil tautannya dulu,
00:02:38hanya dengan pengambilan asinkron.
00:02:39Jika Anda membuat agregator, ini sangat bagus.
00:02:42Pertama cari apa yang dibutuhkan,
00:02:44baru kemudian mengekstraknya.
00:02:45Anda tidak perlu melakukan crawl pada semuanya,
00:02:47hanya pada yang kita perlukan saja.
00:02:48Perbedaan itu sangat terasa skalanya saat berurusan
00:02:50dengan ratusan atau ribuan URL.
00:02:52Sekarang mari bicara tentang sisi produksi.
00:02:55Saya akan jalankan deep crawl memakai strategi BFS deep crawl.
00:02:58Ini adalah versi pendekatan BFS milik mereka.
00:03:01Lalu saya tentukan resume state di sini,
00:03:03dan menambahkan callback on state change.
00:03:07Saya akan mulai proses crawl-nya,
00:03:08lalu saya akan menghentikan paksa prosesnya.
00:03:10Kebanyakan alat saat prosesnya dimatikan,
00:03:13mereka akan mulai lagi dari awal.
00:03:14Tapi saat saya jalankan ulang, lihat ini,
00:03:16kita memulai kembali menggunakan status JSON yang tersimpan,
00:03:19dan ia lanjut tepat di tempat ia berhenti tanpa kehilangan apa pun.
00:03:22Jadi, saat membangun basis pengetahuan RAG yang besar,
00:03:24sistem yang crash bukan lagi hal yang menjengkelkan.
00:03:26Biasanya itu sangat memakan biaya.
00:03:29Tapi di sini, proses bisa dilanjutkan kembali.
00:03:30Kini, bagian yang jarang bisa dilakukan scraper adalah ekstraksi semantik.
00:03:35Jika saya tentukan skema menggunakan Pydantic,
00:03:37seperti judul pekerjaan, perusahaan, gaji,
00:03:39saya akan melakukan scrape pada Indeed.
00:03:40Lalu saya mengonfigurasi strategi ekstraksi LLM mereka
00:03:44dengan instruksi dan penyedia layanan.
00:03:46Saya akan menjalankannya di Indeed,
00:03:48situs lowongan kerja itu,
00:03:49dan lihat hasilnya.
00:03:51Ini sebenarnya sangat bagus.
00:03:52JSON terstruktur dengan kolom yang bersih,
00:03:54dan inilah yang terjadi.
00:03:56CrawlForAI mengubah halaman tersebut,
00:03:58seperti yang saya bilang, ke markdown atau JSON pilihan Anda.
00:04:01Lalu ia akan mengirimkannya ke sebuah model.
00:04:03Model tersebut menatanya berdasarkan skema Anda.
00:04:06Ini bukan sekadar men-scrape teks,
00:04:07tapi mengekstrak apa yang kita inginkan.
00:04:09Sekarang LLM bisa menanganinya.
00:04:11Ini adalah tingkat kapabilitas yang baru untuk alat-alat bergaya LLM.
00:04:15Tadi itu keren,
00:04:16tapi mari kita lihat gambaran besarnya.
00:04:18Kelebihannya adalah cepat.
00:04:20Sangat cepat, hingga enam kali lipat dalam benchmark.
00:04:22Ia menangani JavaScript secara otomatis.
00:04:24Sudah asinkron dan bisa diskalakan,
00:04:26serta bisa melanjutkan setelah crash.
00:04:28Tapi poin utamanya di sini,
00:04:29ia mengintegrasikan LLM secara langsung.
00:04:32Selain itu, ini adalah sumber terbuka (open source).
00:04:33Saya hanya perlu instal via pip dan langsung jalan.
00:04:35Namun, seperti hal lainnya,
00:04:36pasti ada komprominya.
00:04:38Ini hanya untuk Python, kan?
00:04:39Anda mungkin pakai Python, atau mungkin tidak.
00:04:41Itu bisa jadi satu kekurangan.
00:04:42Fitur LLM butuh kunci API kecuali Anda menjalankan model lokal seperti Ollama.
00:04:46Melakukan crawling tetap bisa terkena pembatasan (rate limit),
00:04:49dan seperti proyek open source yang bergerak cepat lainnya,
00:04:51Anda harus rajin memperbaruinya, kan?
00:04:53Pembaruan terus diberikan.
00:04:54Tapi bagi pengembang yang fokus pada AI,
00:04:56ini menghilangkan banyak kesulitan,
00:04:58terutama dalam pipeline RAG.
00:05:00Sekarang mari kita bandingkan dengan yang mungkin sudah Anda gunakan.
00:05:03Scrapy, jika Anda terbiasa dengan Python.
00:05:05Sangat bagus untuk crawl statis besar-besaran,
00:05:07tapi berbasis aturan dan butuh banyak kode standar (boilerplate).
00:05:10Jujur saja, butuh waktu lama untuk menyiapkannya.
00:05:13Jika ingin ekstraksi LLM pada output markdown,
00:05:16Anda harus membangun lapisan kustom sendiri.
00:05:17Dengan CrawlForAI, itu sudah tersedia langsung.
00:05:19Ada juga Beautiful Soup.
00:05:21Sangat ringan, terlalu sederhana bahkan,
00:05:23tapi ia sebenarnya hanyalah sebuah parser.
00:05:25Tidak ada mesin crawling di dalamnya,
00:05:26tidak ada render JavaScript.
00:05:28Anda akhirnya hanya akan menyatukan banyak hal jadi satu.
00:05:31Lalu tentu saja yang besar adalah Selenium.
00:05:33Bisa me-render JavaScript, tentu saja.
00:05:36Tapi ia lebih lambat dan lebih manual.
00:05:38Menskalakan alur kerja asinkron tetap akan merepotkan.
00:05:42CrawlForAI membungkus Playwright secara internal
00:05:44dan menyediakan API asinkron yang jelas.
00:05:46Jika Anda membangun crawler berbasis aturan tradisional
00:05:48untuk data statis,
00:05:49alat-alat lama Anda sebenarnya sudah cukup baik.
00:05:52Tapi jika Anda membangun sistem AI,
00:05:54pipeline RAG, atau agen otonom,
00:05:56CrawlForAI memang dibuat khusus untuk dunia seperti itu,
00:06:00dan ini adalah alat AI yang sangat keren.
00:06:02Ia tidak sekadar crawl halaman, tapi menyiapkan datanya,
00:06:04menyiapkan apa yang dibutuhkan oleh LLM.
00:06:06Jadi, itulah CrawlForAI.
00:06:08Jika Anda mendalami AI, ini layak untuk dicoba.
00:06:11Sangat cepat, saya sendiri kaget dengan kecepatannya.
00:06:14Dan sangat keren
00:06:15jika kita membangun pipeline bergaya RAG,
00:06:17kita bisa mengirim data itu dengan bersih ke LLM kita.
00:06:20Sampai jumpa di video lainnya.