21 poin oleh GN⁺ 2024-07-11 | 2 komentar | Bagikan ke WhatsApp
  • Crawlee adalah pustaka Python untuk web scraping dan otomatisasi browser
  • Membantu membangun crawler yang andal dengan cepat
  • Dapat digunakan untuk ekstraksi data bagi AI, LLM, RAG, dan GPT
  • Dapat mengunduh file seperti HTML, PDF, JPG, dan PNG dari situs web
  • Bekerja bersama BeautifulSoup, Playwright, dan HTTP murni
  • Mendukung mode Headful maupun Headless
  • Menyediakan fitur rotasi proxy

Fitur

  • Menyediakan antarmuka terpadu untuk crawling HTTP dan browser Headless
  • Melakukan crawling paralel otomatis berdasarkan sumber daya sistem yang tersedia
  • Ditulis dalam Python dengan type hint untuk meningkatkan pelengkapan otomatis IDE dan mengurangi bug
  • Fitur retry otomatis saat terjadi error atau ketika diblokir
  • Fitur rotasi proxy terintegrasi dan manajemen sesi
  • Routing permintaan yang dapat dikonfigurasi - meneruskan URL langsung ke handler yang sesuai
  • Queue persisten untuk URL yang akan di-crawl
  • Penyimpanan plug-in untuk data berbentuk tabel maupun file
  • Fitur penanganan error yang kuat

Perbedaan dengan Scrapy

  • Crawlee secara bawaan mendukung crawling browser Headless (Playwright)
  • Antarmuka yang sederhana dan elegan - dapat menyiapkan scraper dengan kurang dari 10 baris kode
  • Penerapan type hint secara menyeluruh
  • Dibangun di atas Asyncio standar

Opini GN⁺

  • Crawlee tampak sebagai alat yang kuat untuk web scraping dan crawling. Terutama, dukungan bawaan untuk crawling berbasis browser Headless terlihat sebagai keunggulan besar.
  • Dengan antarmuka yang sederhana dan jumlah kode yang sedikit, pembuatan crawler tampak sangat produktif. Selain itu, pemanfaatan aktif type hint meningkatkan pengalaman pengembangan dan menurunkan kemungkinan terjadinya error.
  • Jika ini adalah proyek yang memerlukan crawling untuk ekstraksi data, Crawlee layak dipertimbangkan secara serius. Khususnya, jika perlu melakukan crawling pada halaman web yang membutuhkan rendering JavaScript, PlaywrightCrawler tampaknya akan berguna.
  • Namun, jika diperlukan crawling dalam skala yang sangat besar atau real-time sangat penting, mungkin lebih baik menggunakan Scrapy atau alat lain yang mendukung crawling terdistribusi.
  • Sebaiknya juga meninjau kebijakan crawling dan isu hukum dengan saksama sebelum menggunakannya.

2 komentar

 
yangeok 2024-07-15

Saya tahu ini mendukung Node, tapi ternyata Python juga didukung. Kalau scrapper yang butuh perawatan berkelanjutan, sepertinya saya perlu serius mempertimbangkan framework-nya haha.

 
GN⁺ 2024-07-11
Komentar Hacker News
  • Mendokumentasikan fitur yang sudah ada itu penting. Sebagus apa pun platform web scraping, tidak ada gunanya jika hanya pengguna tertentu yang bisa memahaminya

    • Misalnya, sulit memahami arti dari tiered_proxy_urls: list[list[str]] | None = None
    • Contohnya harus menunjukkan cara menemukan dan mengunduh semua data seperti tabel .csv, .xlsx, dan sebagainya
    • Mengambil teks dan mencari URL saja adalah hal yang bisa dilakukan siapa pun
    • Diperlukan contoh yang mem-parsing 1000 item berbeda dan memperoleh 3-5 item melalui endpoint yang berbeda
    • Tidak jelas apakah alat ini sebuah framework atau alat otomasi
    • Saya penasaran apakah ini mendukung protokol opt-out web scraping (misalnya Robots.txt, HTTP, dan tag konten). Ini menjadi sangat penting terutama setelah arahan DSM Uni Eropa
  • Terima kasih kepada Apify/Crawlee. Sebagai pengguna Node.js lama, library ini bekerja paling baik

  • Saat mencari stack untuk sebuah proyek, saya menemukan Crawlee. Saya sebenarnya menginginkan library Python, tetapi akhirnya menggunakan Crawlee dengan Typescript dan menyelesaikan proyek dalam seminggu

    • API-nya jauh lebih baik daripada API scraping Python mana pun yang pernah saya gunakan sejauh ini
    • Integrasinya dengan Playwright membuat pengalaman pemrograman menjadi sangat nyaman
    • Ini bekerja dengan baik untuk situs web yang dirender di frontend dan untuk menangkap respons XHR yang dimodifikasi
    • Saya berencana memperluasnya dengan menggunakan platform Apify
  • Saya penasaran apa bedanya dengan Scrapy

  • Saya penasaran apa alasan untuk beralih dari library lain. Saya sudah membangun crawler sendiri, tetapi tidak menemukan hal yang benar-benar unik

  • Kode Python modernnya terlihat keren

    • Dalam kode contoh, const data = await crawler.get_data() terlihat seperti Javascript. Sepertinya underscore-nya hilang
  • Saya menyarankan agar lebih banyak cuplikan kode dari test case dibawa ke contoh dokumentasi. Kerja bagus

  • Alat scraping selalu disambut baik. Saya akan mencobanya untuk proyek pribadi. Berkat AI, scraping saat ini terasa seperti menjual sekop di masa demam emas