Scrapling: Web Scraper yang Dapat Memperbaiki Diri Sendiri

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Ini adalah Scrapling, sebuah scraper Python yang mencoba memperbaiki bagian terburuk dari web scraping.
00:00:05Scraper bekerja hari ini, lalu rusak begitu situsnya berubah. Satu kelas berganti nama,
00:00:10satu div pindah, satu pemeriksaan bot, dan sekarang pipa data Anda mati. Klaim utama Scrapling adalah
00:00:17bahwa scraper Anda bisa beradaptasi alih-alih rusak. Ia memiliki lebih dari 53.000 bintang di GitHub,
00:00:22mendukung penguraian adaptif, pengambilan terselubung, dan alur kerja crawler yang lebih besar.
00:00:27Saya akan menguji satu pertanyaan yang benar-benar penting.
00:00:30Bisakah ia bertahan dari perubahan situs web tanpa menulis ulang pemilih? Kita akan segera mengetahuinya.
00:00:40Jadi, apa itu Scrapling? Scrapling adalah framework web scraping Python all-in-one yang adaptif.
00:00:46Anda mendapatkan parser yang bisa memperbaiki diri sendiri, fetcher terselubung, pengambilan berbasis browser saat JavaScript diperlukan,
00:00:51dan framework spider untuk penjelajahan yang lebih besar. Satu instalasi, satu API. Itu berarti lebih sedikit scraper
00:00:57yang rusak dan lebih banyak data yang dapat digunakan yang kita dapatkan kembali. Sekarang, mari kita lihat bagian yang sebenarnya penting.
00:01:03Jika Anda menikmati alat pengkodean untuk mempercepat alur kerja Anda, pastikan untuk berlangganan. Kami memiliki video yang akan keluar sepanjang
00:01:08waktu. Nah, di sini saya memiliki pengaturan dasar, bukan? Saya sudah menginstal Scrapling, jadi kita akan menjaga bagian ini
00:01:13tetap cepat. Satu impor dan satu panggilan adalah semua yang kita butuhkan untuk mendapatkan halaman. Di atas sini, saya membuat HTML yang berubah.
00:01:21Salah satunya seperti situs awal yang umum. Lalu saya tetap menggunakan hal yang sama, tetapi saya mengubah pemilih CSS-nya.
00:01:27Katakanlah saya ingin nama produk dan harganya. Nah, biasanya saya mungkin mengambilnya dengan pemilih CSS,
00:01:34kan? Jadi CSS halaman, saya masukkan pemilih saya, simpan otomatis, benar. Saya bisa melakukan itu dan itu akan
00:01:40berhasil dan kita akan mendapatkan kamus data kembali kepada kita. Terlihat normal. Dua pemilih, sebuah kamus,
00:01:46saya lanjut. Itu saja. Tapi di saat yang sama, itu sebenarnya masalahnya karena scraper normal bekerja
00:01:52dengan baik sampai halaman itu berubah. Sekarang, apa yang terjadi jika situs tiba-tiba berubah dalam semalam? Mereka mendesain
00:01:58ulangnya. Mereka melakukan sesuatu untuk mencegah ini. Jadi judul produk menjadi tajuk item atau harga produk menjadi
00:02:04nilai harga. Data yang sama ada di halaman, tetapi seluruh DOM berubah. Pemilih lama seharusnya
00:02:11mati. Dan di sinilah sebagian besar scraper akan rusak. Tapi sekarang kita bisa mengaktifkan mode adaptif.
00:02:18Satu perubahan simpan otomatis sama dengan benar menjadi adaptif sama dengan benar. Jadi sekarang saya masih bisa meletakkan judul produk
00:02:26dengan adaptif disetel ke benar. Data yang sama. Saya tidak mengubah pemilihnya. Ini struktur halaman yang berbeda tanpa
00:02:34penulisan ulang pemilih. Itu ide utamanya di sini. Sekarang, ketika Anda melakukan scraping elemen dengan simpan otomatis benar,
00:02:40scrapling merekam petunjuk tentangnya. Jadi ia akan merekam hal-hal seperti tag, atribut,
00:02:44induk dan anak, teks tetangga apa pun, mungkin posisi DOM dan bentuk strukturnya. Jadi ketika
00:02:50nama kelas berubah, scrapling memiliki lebih banyak petunjuk yang tersisa. Ia tidak membutuhkan seluruh situs untuk tetap sama.
00:02:56Ia hanya membutuhkan sinyal struktural yang cukup untuk mengenali elemen tersebut lagi. Dan itulah
00:03:01bagian yang penting karena kegagalan scraper yang nyata hampir tidak pernah merupakan desain ulang total. Ini adalah kelas yang berganti nama,
00:03:06pembungkus baru, tata letak yang bergeser, satu hal kecil. Itulah yang dirancang untuk pencocokan adaptif.
00:03:13Scrapling memiliki tiga bagian besar yang benar-benar penting. Yang pertama adalah parser adaptif, yang baru saja Anda lihat.
00:03:18Lalu ada fetcher ganda, satu alur kerja, alat yang tepat untuk pekerjaan itu. Fetcher digunakan untuk HTTP biasa,
00:03:25cepat untuk halaman web sederhana. Fetcher terselubung dapat melewati anti-bot saat dibutuhkan. Fetcher dinamis adalah browser nyata
00:03:32untuk situs berat JS. Satu API, tukar fetcher, simpan kodenya. Framework spider adalah saat skrip cepat
00:03:39berubah menjadi crawler nyata. Crawling asinkron, jeda dan lanjutkan, rotasi proksi, streaming, dan semua sesi campuran
00:03:46itu. Hal-hal yang biasanya Anda tambahkan nanti, itu sudah ada di sana. Scrapling bukan sekadar parser
00:03:53lain. Ia menggantikan tumpukan scraping. Permintaan, beautiful soup, playwright, logika coba lagi, pembantu proksi,
00:04:00kode spider dengan satu alur kerja. Scrapling tidak mengatakan beautiful soup tidak berguna dan tidak mengatakan
00:04:06playwright atau scrappy sudah mati. Beautiful soup plus permintaan masih bagus untuk halaman sederhana. Itu mudah,
00:04:13itu mudah dibaca dan semua orang memahaminya, tetapi itu tidak memberi Anda jenis penyamaran apa pun. Itu tidak memberi
00:04:20Anda pemilih adaptif dan itu tidak merender JavaScript. Dan untuk pekerjaan penguraian yang lebih besar, itu bisa
00:04:26menjadi hambatan yang sebenarnya. Sekarang, scrappy itu kuat. Jika Anda sedang membangun infrastruktur crawling
00:04:31yang serius, scrappy masih layak dihormati, tetapi scrappy sering berarti pengaturan, pipa, middleware,
00:04:36ekstensi, dan lebih banyak lagi pengaturan. Playwright dan Selenium hebat saat Anda membutuhkan browser nyata.
00:04:42Terkadang halaman hanya membutuhkan JavaScript. Tidak ada jalan lain. Tetapi browser itu berat. Mereka
00:04:48lebih lambat daripada HTTP mentah dan mereka menggunakan lebih banyak memori. Dan sekali lagi, mereka tetap tidak memperbaiki masalah pemilih yang
00:04:54rusak. Mereka menjalankan halaman. Mereka tidak mengerti apa yang ingin diekstrak oleh scraper Anda. Jadi dengan scrapling,
00:05:01Anda bisa menggunakan pengambilan cepat saat Anda bisa, penyamaran saat Anda membutuhkannya, gunakan rendering browser saat halaman
00:05:06memerlukannya dan gunakan penguraian adaptif. Jadi satu perubahan front kecil tidak meledakkan segalanya. Sekarang, semua ini
00:05:12tidak berarti scrapling tidak memiliki masalah, kan? Jika Anda berurusan dengan perlindungan tingkat data dome,
00:05:17sidik jari lanjutan, atau batas tarif yang agresif, Anda mungkin masih memerlukan proksi yang bagus. Jadi scrapling dapat
00:05:23membantu, tetapi itu tidak membuat Anda tidak terlihat. Pengambilan dinamis juga bisa berarti pengaturan browser tambahan. Itu hanya
00:05:29trade-off ketika rendering JavaScript terlibat. Inilah beberapa bahan pemikiran untuk semua ini.
00:05:34Scrapling layak dicoba jika Anda melakukan pekerjaan scraping nyata, terutama jika Anda sedang membangun pipa data,
00:05:41Anda memiliki pekerjaan rag, agen AI, atau apa pun yang perlu terus berjalan setelah situs target berubah. Alasan
00:05:47terkuat untuk menggunakannya bukanlah karena itu membuat scraping menjadi mungkin. Kita sudah memiliki alat yang bisa
00:05:53benar-benar melakukan itu, kan? Alasan terkuat adalah itu mengurangi pemeliharaan. Sekarang, saya mungkin hanya akan
00:05:59melewatkannya jika Anda memiliki skrip yang sangat kecil, kan? Permintaan dan beautiful soup akan berhasil,
00:06:04kan? Jika Anda menikmati alat pengkodean seperti ini, pastikan untuk berlangganan saluran BetterStack. Sampai jumpa di video lain.

Key Takeaway

Scrapling mengurangi pemeliharaan skrip web scraping secara drastis melalui penggunaan parser adaptif yang mampu mengekstrak data meskipun struktur halaman berubah tanpa perlu menulis ulang pemilih CSS.

Highlights

  • Scrapling adalah framework Python yang memungkinkan scraping web dengan parser yang mampu memperbaiki diri sendiri saat terjadi perubahan struktur DOM.

  • Mode adaptif Scrapling merekam petunjuk struktural seperti tag, atribut, posisi DOM, dan elemen tetangga untuk mengenali target data meskipun nama kelas atau tata letak berubah.

  • Framework ini menyediakan satu API terpadu untuk berbagai kebutuhan, mencakup HTTP biasa, penyamaran anti-bot, dan rendering browser berbasis JavaScript.

  • Scrapling menggantikan tumpukan alat terpisah seperti requests, beautiful soup, dan playwright dalam satu alur kerja yang efisien.

  • Penggunaan Scrapling bertujuan utama untuk mengurangi beban pemeliharaan skrip scraping akibat perubahan situs target.

Timeline

Masalah Utama dalam Web Scraping

  • Skrip scraping sering rusak saat situs target melakukan perubahan kecil pada struktur DOM.
  • Scrapling menawarkan solusi berupa scraper yang dapat beradaptasi terhadap perubahan situs.

Banyak scraper berhenti bekerja ketika elemen seperti nama kelas berganti, div berpindah posisi, atau terdapat pemeriksaan bot. Scrapling hadir sebagai framework yang diklaim mampu bertahan dari perubahan tersebut tanpa harus menulis ulang pemilih CSS secara manual.

Pengoperasian Parser Adaptif

  • Mode adaptif bekerja dengan merekam berbagai petunjuk struktural elemen saat proses scraping.
  • Scrapling tetap dapat mengekstrak data yang sama meskipun seluruh struktur halaman atau nama kelas berubah.

Saat opsi 'simpan otomatis' diaktifkan, Scrapling mencatat tag, atribut, relasi induk-anak, posisi DOM, dan elemen tetangga. Ketika situs mendesain ulang tata letaknya, sistem memiliki cukup sinyal untuk mengenali elemen target kembali tanpa memerlukan intervensi manual.

Arsitektur dan Integrasi Alat

  • Scrapling menggabungkan fungsi parser, fetcher (HTTP, terselubung, dinamis), dan spider dalam satu API.
  • Framework ini menyediakan alat yang tepat sesuai kebutuhan, mulai dari halaman sederhana hingga situs berat JavaScript.

Pengguna dapat menukar fetcher dengan mudah tanpa mengubah alur kode utama. Ini memungkinkan efisiensi dengan menggunakan pengambilan cepat untuk halaman biasa, penyamaran saat perlu melewati anti-bot, atau browser nyata untuk konten JavaScript, semuanya dalam satu kerangka kerja.

Batasan dan Rekomendasi Penggunaan

  • Scrapling tidak sepenuhnya meniadakan kebutuhan akan proksi berkualitas pada perlindungan data tingkat tinggi.
  • Alat ini sangat disarankan untuk pipa data, agen AI, atau skrip yang harus berjalan konsisten meski situs target berubah.

Meskipun Scrapling mengurangi beban kerja, perlindungan tingkat lanjut seperti sidik jari atau batas tarif agresif mungkin tetap memerlukan proksi tambahan. Skrip yang sangat sederhana mungkin masih bisa menggunakan pendekatan standar seperti requests dan beautiful soup, namun untuk skala yang lebih besar, Scrapling secara signifikan menekan biaya pemeliharaan.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video