Scrapling: Web Scraper yang Dapat Memperbaiki Diri Sendiri
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
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.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video