Cara Merayapi Situs Web: Panduan Langkah demi Langkah tentang Perayapan dengan Python, JavaScript, dan 12 Tips Kami agar Tidak Diblokir pada 2023

Memulai perjalanan petualangan menjelajahi web dapat terasa mengasyikkan sekaligus menantang, saat seseorang menyusuri lorong-lorong internet yang berliku untuk mencari data berharga. Di alam semesta digital yang luas, seni penjelajahan web telah menjadi keterampilan penting yang memungkinkan kita menambang informasi secara efisien, mengembangkan wawasan, dan memahami dunia web yang terus berkembang.

Dalam artikel informatif ini, kita akan menjelajahi medan penjelajahan web yang rumit, mengungkap perbedaan antara penjelajahan web dan pengikisan web, sekaligus menelusuri beragam strategi dan teknologi yang akan meningkatkan kemampuan Anda dalam menjelajahi web.

Dari dunia dinamis situs web JavaScript hingga kesederhanaan Python yang andal, kami akan memandu Anda melalui berbagai kiat dan teknik untuk memastikan ekspedisi penjelajahan web Anda berjalan lancar, efektif, dan tanpa hambatan.

Daftar Isi

Jadi, bersiaplah dan mari memulai perjalanan seru ke dunia penjelajahan web yang memikat!

Penjelajahan Web vs. Pengikisan Web

Meskipun pengikisan web dan penjelajahan web sering dianggap sebagai hal yang sama, dan keduanya digunakan untuk penambangan data, keduanya memiliki perbedaan penting. Kami akan membahas perbedaan ini dan membantu Anda menentukan pendekatan yang paling sesuai dengan kebutuhan dan sasaran bisnis Anda.

Perbedaan Utama

Sederhananya, penjelajahan web adalah hal yang dilakukan mesin pencari: mereka menjelajahi web, mencari informasi yang tersedia, dan mengikuti setiap tautan yang dapat diakses. Proses umum ini bertujuan mengumpulkan informasi sebanyak mungkin (atau bahkan semuanya) dari situs web tertentu. Pada dasarnya, inilah yang dilakukan Google – Google melihat seluruh halaman web dan mengindeks semua data yang tersedia.

Di sisi lain, pengikisan web digunakan ketika Anda ingin mengunduh informasi yang telah dikumpulkan. Pengikisan web (juga dikenal sebagai ekstraksi data web) merupakan proses yang lebih terarah. Dengan menyesuaikan perintah dan menggunakan proxy pengikisan, Anda dapat mengekstrak data tertentu dari situs web target. Selanjutnya, Anda dapat mengunduh hasilnya dalam format yang sesuai, seperti JSON atau Excel.

Dalam beberapa kasus, penjelajahan web dan pengikisan web dapat digunakan untuk mencapai satu tujuan, yang pada dasarnya berfungsi sebagai langkah pertama dan kedua dalam proses Anda. Dengan menggabungkan keduanya, Anda dapat mengumpulkan banyak informasi dari situs web besar menggunakan perayap, lalu mengekstrak dan mengunduh data tertentu yang Anda perlukan dengan pengikis.

4 Strategi Penjelajahan Web

Secara umum, perayap web hanya mengunjungi sebagian halaman web berdasarkan anggaran perayapnya, yang dapat ditentukan oleh faktor-faktor seperti jumlah maksimum halaman per domain, kedalaman, atau durasi.

Banyak situs web menyediakan file robots.txt yang menentukan bagian situs mana yang boleh dijelajahi dan mana yang tidak boleh diakses. Selain itu, ada sitemap.xml, yang lebih terperinci daripada robots.txt, memandu bot mengenai jalur yang harus dijelajahi dan memberikan metadata tambahan untuk setiap URL.

Penggunaan umum perayap web meliputi:

  1. Mesin pencari seperti Googlebot, Bingbot, dan Yandex Bot mengumpulkan HTML dari sebagian besar web, lalu mengindeks data tersebut agar mudah ditelusuri.
  2. Alat analitik SEO mengumpulkan bukan hanya HTML, tetapi juga metadata, seperti waktu respons dan status respons, untuk mengidentifikasi halaman yang rusak dan melacak tautan antar-domain demi analisis tautan balik.
  3. Alat pemantauan harga menjelajahi situs web e-commerce untuk menemukan halaman produk dan mengekstrak metadata, terutama harga. Halaman produk ini kemudian dikunjungi kembali secara berkala.
  4. Common Crawl mengelola repositori publik data penjelajahan web, seperti arsip Mei 2022 yang berisi 3.45 miliar halaman web.

Cara Merayapi Situs Web JavaScript

Merayapi situs web JavaScript bisa lebih menantang daripada merayapi halaman HTML statis karena kontennya sering dimuat dan dimanipulasi oleh kode JavaScript. Untuk merayapi situs web semacam itu, Anda perlu menggunakan peramban tanpa kepala yang dapat menjalankan JavaScript dan merender konten halaman. Salah satu pilihan populer untuk tugas ini adalah kombinasi pustaka Puppeteer dan lingkungan runtime Node.js.

Berikut panduan langkah demi langkah untuk merayapi situs web JavaScript menggunakan Puppeteer dan Node.js:

1. Instal Node.js

Unduh dan instal versi Node.js terbaru dari situs web resminya (https://nodejs.org/).

2. Buat Direktori Proyek Baru

Buat direktori baru untuk proyek Anda dan buka direktori tersebut menggunakan baris perintah.

mkdir js-crawler cd js-crawler

3. Inisialisasi Proyek Node.js Baru

Jalankan perintah berikut di direktori proyek Anda untuk membuat file package.json baru dengan pengaturan default.

npm init -y

4. Instal Puppeteer

Instal Puppeteer dengan menjalankan perintah berikut di direktori proyek Anda

npm install puppeteer

5. Buat File JavaScript Baru

Buat file baru bernama

crawler.js

di direktori proyek Anda, yang akan berisi kode untuk merayapi situs web JavaScript.

6. Tulis Kode Perayap

Buka

crawler.js

dan tambahkan kode berikut:

const puppeteer = require('puppeteer');async function crawlJavaScriptWebsite(url) {

Luncurkan instans peramban baru

constbrowser =awaitpuppeteer.launch({headless:true});

Buat halaman baru di peramban

constpage =awaitbrowser.newPage();

Buka URL target

awaitpage.goto(url, {waitUntil:'networkidle2'})

Ekstrak data dari halaman menggunakan

evaluate()constdata =awaitpage.evaluate(() =>{

Tulis kode JavaScript khusus Anda di sini untuk mengekstrak data yang diperlukan. Sebagai contoh, mari kita ekstrak semua judul (elemen h1) dari halaman.

constheadings =Array.from(document.querySelectorAll('h1')).map(heading=>heading.textContent);return{ headings, }; });

Tutup peramban

awaitbrowser.close();

Kembalikan data yang diekstrak

returndata; }

Contoh penggunaan:

crawlJavaScriptWebsite('https://example.com/') .then(data=>console.log(data)) .catch(err=>console.error(err));

Ganti URL

https://example.com/

dengan URL situs web target dan sesuaikan fungsi

page.evaluate()

untuk mengekstrak data yang Anda perlukan.

7. Jalankan Perayap

Jalankan perintah berikut di direktori proyek Anda untuk menjalankan perayap:

node crawler.js

Skrip tersebut akan meluncurkan peramban tanpa kepala, membuka URL target, dan menjalankan kode JavaScript yang ditentukan dalam fungsi

page.evaluate()

Data yang diekstrak akan ditampilkan di konsol.

Perlu diingat bahwa ini adalah contoh dasar untuk merayapi situs web JavaScript. Untuk kasus penggunaan yang lebih lanjut, Anda mungkin perlu berinteraksi dengan halaman, menangani permintaan AJAX, menggulir halaman, atau menangani CAPTCHA dan cookie.

Cara Merayapi Web dengan Python

Merayapi situs web dengan Python melibatkan pengambilan halaman web, penguraian kontennya, dan mengikuti tautan ke halaman lain. Dalam panduan ini, kita akan menggunakan dua pustaka Python yang populer: Requests dan Beautiful Soup. Panduan ini mengasumsikan bahwa Anda telah menginstal Python dan memiliki pemahaman dasar tentang pemrograman Python.

Langkah 1: Instal pustaka yang diperlukan

Instal pustaka Requests dan Beautiful Soup menggunakan pip:

pip install requests beautifulsoup4

Langkah 2: Impor pustaka

Impor pustaka yang diperlukan dalam skrip Python Anda:

importrequestsfrombs4importBeautifulSoup

Langkah 3: Buat fungsi untuk mengambil konten halaman web

Buat fungsi untuk mengambil konten halaman web menggunakan pustaka Requests:

deffetch_page(url):response = requests.get(url)ifresponse.status_code ==200:returnresponse.textelse:print(f"Failed to fetch{url}(status code{response.status_code})")returnNone

Langkah 4: Buat fungsi untuk mengurai konten halaman web

Buat fungsi untuk mengurai konten halaman web menggunakan pustaka Beautiful Soup:

defparse_page(html): soup = BeautifulSoup(html,"html.parser")returnsoup

Langkah 5: Buat fungsi untuk mengekstrak tautan dari konten yang diurai

Buat fungsi untuk mengekstrak semua tautan dari konten halaman web yang telah diurai:

defextract_links(soup, base_url):links = []fora_taginsoup.find_all("a"):href = a_tag.get("href")ifhrefandnothref.startswith("#"):ifnothref.startswith("http"):href = base_url + hreflinks.append(href)returnlinks

Langkah 6: Buat fungsi untuk merayapi situs web

Buat fungsi untuk merayapi situs web secara rekursif:

defcrawl_website(url, max_depth=2, depth=0):ifdepth > max_depth:returnhtml = fetch_page(url)ifnothtml:returnsoup = parse_page(html)links = extract_links(soup, url)print(f"{' ' * depth}[{depth}]{url}")forlinkinlinks:crawl_website(link, max_depth, depth +1)

Langkah 7: Jalankan perayap

Jalankan perayap dengan memanggil fungsi

crawl_website

menggunakan URL dan kedalaman maksimum yang diinginkan:

if__name__ =="__main__":start_url ="https://example.com/"max_depth =2crawl_website(start_url, max_depth)

Panduan langkah demi langkah ini menunjukkan cara merayapi situs web menggunakan Python. Anda dapat menyesuaikan fungsi

crawl_website

untuk menangani struktur situs web tertentu, menambahkan logika untuk menyimpan informasi yang diekstrak, atau menerapkan fitur perayapan yang lebih canggih seperti menangani robots.txt, membatasi frekuensi permintaan, atau menjalankan permintaan secara paralel.

12 Tips tentang Cara Merayapi Situs Web Tanpa Diblokir

Berikut strategi utama untuk merayapi situs web tanpa terkena pemblokiran:

#1: Periksa Protokol Pengecualian Robots

Sebelum merayapi atau mengikis situs web, pastikan target Anda mengizinkan pengumpulan data dari halamannya. Periksa file protokol pengecualian robots (robots.txt) situs web dan patuhi aturan situs tersebut.

Meskipun situs web mengizinkan perayapan, tetaplah bersikap bijak dan jangan merusak situs. Patuhi aturan yang ditentukan dalam protokol pengecualian robots, lakukan perayapan di luar jam sibuk, batasi permintaan yang berasal dari satu alamat IP, dan beri jeda di antara permintaan.

Namun, meskipun situs web mengizinkan pengikisan web, Anda mungkin masih terkena pemblokiran, jadi penting untuk mengikuti langkah-langkah tambahan. Untuk panduan yang lebih lengkap, lihat tutorial Python pengikisan web kami.

#2: Gunakan Server Proxy

Perayapan web hampir mustahil dilakukan tanpa proxy. Pilih penyedia layanan proxy tepercaya dan tentukan antara proxy IP pusat data dan residensial berdasarkan tugas Anda.

Menggunakan perantara antara perangkat Anda dan situs web target mengurangi pemblokiran alamat IP, menjamin anonimitas, dan memungkinkan Anda mengakses situs web yang mungkin tidak tersedia di wilayah Anda. Misalnya, jika Anda berada di Jerman, Anda mungkin perlu menggunakan proxy AS untuk mengakses konten web di Amerika Serikat.

Untuk hasil optimal, pilih penyedia proxy dengan kumpulan IP yang besar dan beragam lokasi.

#3: Rotasi Alamat IP

Saat menggunakan kumpulan proxy, penting untuk merotasi alamat IP Anda.

Jika Anda mengirim terlalu banyak permintaan dari alamat IP yang sama, situs web target akan segera mengenali Anda sebagai ancaman dan memblokir alamat IP Anda. Rotasi proxy membuat Anda seolah-olah beberapa pengguna internet yang berbeda dan mengurangi kemungkinan diblokir.

Semua Proxy Residensial Oxylabs merotasi IP, tetapi jika Anda menggunakan Proxy Pusat Data, sebaiknya gunakan layanan rotasi proxy. Kami juga merotasi proxy IPv6 dan IPv4. Jika Anda tertarik dengan perbedaan antara IPv4 dan IPv6, baca artikel yang ditulis oleh kolega saya, Iveta.

#4: Gunakan User Agent Asli

Sebagian besar server yang meng-host situs web dapat memeriksa header permintaan HTTP yang dibuat oleh bot perayap. Header permintaan HTTP ini, yang disebut user agent, berisi berbagai informasi, mulai dari sistem operasi dan perangkat lunak hingga jenis aplikasi dan versinya.

Server dapat dengan mudah mendeteksi user agent yang mencurigakan. User agent asli memuat konfigurasi permintaan HTTP populer yang dikirimkan oleh pengunjung organik. Agar tidak diblokir, pastikan untuk menyesuaikan user agent Anda agar menyerupai user agent organik.

Karena setiap permintaan yang dilakukan browser web berisi user agent, Anda harus sering mengganti user agent.

Anda juga perlu menggunakan user agent terbaru dan yang paling populer. Jika Anda membuat permintaan dengan user agent berusia lima tahun dari versi Firefox yang tidak lagi didukung, hal itu akan menimbulkan banyak kecurigaan. Anda dapat menemukan basis data publik di internet yang menunjukkan user agent mana yang saat ini paling populer. Kami juga memiliki basis data sendiri yang diperbarui secara berkala, jadi hubungi kami jika Anda memerlukan akses ke sana.

#5: Atur Sidik Jari Anda dengan Benar

Mekanisme anti-pengikisan semakin canggih, dan beberapa situs web menggunakan Transmission Control Protocol (TCP) atau sidik jari IP untuk mendeteksi bot.

Saat mengikis web, TCP meninggalkan berbagai parameter. Parameter ini ditentukan oleh sistem operasi atau perangkat pengguna akhir. Jika Anda bertanya-tanya cara menghindari daftar hitam saat melakukan pengikisan, pastikan parameter Anda konsisten. Sebagai alternatif, Anda dapat menggunakan Web Unblocker – solusi proxy bertenaga AI dengan fungsi sidik jari dinamis. Web Unblocker menggabungkan banyak variabel sidik jari sehingga bahkan ketika mengidentifikasi satu sidik jari yang paling efektif, sidik jari tersebut tetap tampak acak dan dapat lolos dari pemeriksaan anti-bot.

#6: Waspadai Perangkap Honeypot

Waspadalah terhadap perangkap honeypot, yaitu tautan dalam kode HTML yang dapat terdeteksi oleh pengikis web tetapi tidak terlihat oleh pengguna organik. Perangkap ini digunakan untuk mengidentifikasi dan memblokir perayap web karena hanya robot yang akan mengikuti tautan tersebut. Meskipun menyiapkan honeypot membutuhkan banyak upaya, beberapa target mungkin menggunakannya untuk mendeteksi perayap web, jadi waspadalah jika permintaan Anda diblokir dan perayap terdeteksi.

#7: Gunakan Layanan Pemecah CAPTCHA

CAPTCHA menjadi tantangan besar bagi perayapan web karena mengharuskan pengunjung menyelesaikan teka-teki untuk memastikan bahwa mereka manusia. Teka-teki ini sering kali mencakup gambar yang sulit ditafsirkan oleh komputer. Untuk melewati CAPTCHA, gunakan layanan pemecah CAPTCHA khusus atau alat perayapan siap pakai, seperti alat perayapan data Oxylabs, yang menyelesaikan CAPTCHA dan memberikan hasil siap pakai. Perilaku mencurigakan dapat membuat target meminta penyelesaian CAPTCHA.

#8: Ubah Pola Perayapan

Agar tidak diblokir, ubah pola navigasi perayap Anda agar terlihat kurang mudah diprediksi. Anda dapat menambahkan klik, guliran, dan gerakan mouse secara acak untuk meniru perilaku penjelajahan pengguna biasa. Untuk menerapkan praktik terbaik, pikirkan bagaimana pengguna biasa akan menjelajahi situs web tersebut dan terapkan prinsip-prinsip itu pada alat Anda. Misalnya, mengunjungi halaman beranda sebelum meminta halaman internal merupakan pola yang logis.

#9: Kurangi Kecepatan Pengikis

Untuk mengurangi risiko diblokir, perlambat kecepatan pengikis dengan menambahkan jeda acak di antara permintaan atau menjalankan perintah tunggu sebelum melakukan tindakan. Jika URL dibatasi kecepatannya, patuhi batasan situs web dan kurangi kecepatan pengikisan agar permintaan tidak dibatasi.

#10: Lakukan Perayapan di Luar Jam Sibuk

Perayap bergerak lebih cepat daripada pengguna biasa dan dapat berdampak signifikan pada beban server. Melakukan perayapan saat beban tinggi dapat berdampak negatif pada pengalaman pengguna akibat layanan yang melambat. Untuk menghindarinya, lakukan perayapan di luar jam sibuk, misalnya tepat setelah tengah malam (sesuai waktu lokal layanan), untuk mengurangi beban server.

#11: Hindari Pengikisan Gambar

Mengikis gambar bisa berisiko karena gambar sering kali merupakan objek yang memakan banyak data dan mungkin dilindungi hak cipta. Selain itu, gambar sering tersembunyi dalam elemen JavaScript, yang dapat meningkatkan kerumitan proses pengikisan dan memperlambat pengikis web. Untuk mengekstrak gambar dari elemen JS, diperlukan prosedur pengikisan yang lebih rumit.

#12: Gunakan Browser Tanpa Antarmuka Grafis

Browser tanpa antarmuka grafis adalah alat yang berfungsi seperti browser biasa tetapi tanpa antarmuka pengguna grafis. Alat ini memungkinkan pengikisan konten yang dimuat dengan merender elemen JavaScript. Browser yang paling banyak digunakan, Chrome dan Firefox, memiliki mode tanpa antarmuka grafis yang dapat digunakan untuk pengikisan web tanpa memicu pemblokiran.

Tutorial Video tentang Cara Merayapi Situs Web

Dalam tutorial Oxylabs ini, Anda akan mempelajari dasar-dasar perayapan web dan pentingnya untuk pengumpulan data, sekaligus membahas aspek etika dan hukum. Tutorial ini memperkenalkan alat populer seperti Scrapy, Beautiful Soup, dan Selenium, serta membantu Anda memilih alat yang paling sesuai dengan kebutuhan.

Tutorial ini membantu Anda memahami struktur situs web, membuat perayap web sederhana, dan mengekstrak informasi yang Anda butuhkan. Tutorial ini juga mengingatkan Anda untuk menerapkan etika scraping web yang baik, seperti mematuhi aturan robots.txt dan tidak membebani server.

Video ini juga membantu Anda mengatasi tantangan seperti mengambil data dari halaman dinamis, menangani banyak halaman, dan menghindari pemblokiran. Video ini menunjukkan cara menyimpan dan mengatur data, serta memberikan tips untuk mengembangkan proyek perayapan web Anda agar lebih besar dan efisien. Terakhir, video ini mengingatkan Anda untuk selalu mematuhi pedoman etika dan hukum.

Kesimpulan

Saat kita sampai di penghujung penjelajahan seru ke dunia perayapan web, menjadi jelas bahwa menguasai seni ini ibarat memiliki peta harta karun di bentangan internet yang luas dan terus berubah. Kita telah menyelami seluk-beluk yang membedakan perayapan web dari scraping web, mengungkap beragam strategi, dan menjelajahi dunia dinamis situs web JavaScript serta perayapan web dengan Python.

Kumpulan tips dan saran kami memastikan upaya perayapan web Anda tetap bertanggung jawab dan etis, sekaligus menghindari jebakan dan hambatan yang mungkin muncul di sepanjang perjalanan. Jadi, saat Anda berlayar mengarungi samudra digital yang tak berbatas, berbekal pengetahuan dan wawasan dari artikel komprehensif ini, ingatlah bahwa kemampuan memanfaatkan kekuatan perayapan web akan membuat Anda unggul dari pesaing dan membuka harta karun tersembunyi di kedalaman dunia digital.