Memulai perjalanan petualangan perayapan web bisa menjadi hal yang mendebarkan sekaligus menantang, saat seseorang menavigasi lorong-lorong labirin internet untuk mencari data berharga. Di dunia digital yang luas, seni perayapan web telah muncul sebagai keterampilan penting yang memungkinkan kita menggali informasi secara efisien, mengembangkan wawasan, dan memahami world wide web yang terus berkembang.

Dalam artikel yang mencerahkan ini, kita akan menjelajahi medan perayapan web yang rumit, mengungkap perbedaan antara perayapan web dan web scraping sambil menjelajahi berbagai strategi dan teknologi yang akan meningkatkan kecakapan perayapan web Anda.

Dari ranah dinamis situs web JavaScript hingga kesederhanaan Python yang hebat, kami akan memandu Anda melalui banyak tips dan teknik untuk memastikan ekspedisi perayapan web Anda lancar, efektif, dan tanpa hambatan.

Daftar isi

Jadi, bersiaplah dan bersiaplah untuk memulai perjalanan mengasyikkan ke dunia perayapan web yang menawan!

Perayapan Web vs. Pengikisan Web

Meskipun web scraping dan web crawling sering kali dianggap sama, dan keduanya digunakan untuk penambangan data, keduanya memiliki perbedaan utama. Kami akan mengeksplorasi perbedaan-perbedaan ini dan membantu Anda menentukan pendekatan mana yang paling sesuai dengan kebutuhan dan tujuan bisnis Anda.

Perbedaan Utama

Sederhananya, perayapan web adalah apa yang dilakukan mesin telusur: mereka menavigasi web, mencari informasi apa pun yang tersedia, dan mengikuti setiap tautan yang dapat diakses. Proses umum ini bertujuan untuk mengumpulkan informasi sebanyak-banyaknya (atau bahkan seluruhnya) dari suatu website tertentu. Pada dasarnya, inilah yang dilakukan Google – ia melihat seluruh halaman web dan mengindeks semua data yang tersedia.

Di sisi lain, web scraping digunakan ketika Anda ingin mengunduh informasi yang dikumpulkan. Pengikisan web (juga dikenal sebagai ekstraksi data web) adalah proses yang lebih terfokus. Dengan menyesuaikan perintah dan memanfaatkan proxy scraping, Anda dapat mengekstrak data spesifik dari situs web target Anda. Selanjutnya, Anda dapat mendownload hasilnya dalam format yang sesuai, seperti JSON atau Excel.

Perayapan Web vs. Pengikisan Web

Dalam beberapa kasus, perayapan 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 informasi dalam jumlah besar dari situs web besar menggunakan crawler dan kemudian mengekstrak dan mengunduh data spesifik yang Anda perlukan dengan scraper.

4 Strategi Perayapan Web

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

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

Kegunaan umum perayap web meliputi:

  1. Mesin pencari seperti Googlebot, Bingbot, dan Yandex Bot mengumpulkan HTML dari sebagian besar web, mengindeks data agar mudah dicari.
  2. Alat analisis SEO tidak hanya mengumpulkan HTML tetapi juga metadata, seperti waktu respons dan status respons, untuk mengidentifikasi halaman yang rusak dan melacak tautan antar domain untuk analisis backlink.
  3. Alat pemantauan harga merayapi situs web e-niaga untuk menemukan halaman produk dan mengekstrak metadata, khususnya harga. Halaman produk ini kemudian ditinjau kembali secara berkala.
  4. Perayapan Umum mempertahankan a repositori publik data perayapan web, seperti Arsip Mei 2022 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 tersebut, Anda perlu menggunakan browser 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 adalah panduan langkah demi langkah untuk merayapi situs web JavaScript menggunakan Puppeteer dan Node.js:

1. Instal Node.js

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

2. Buat Direktori Proyek Baru

Buat direktori baru untuk proyek Anda dan navigasikan ke sana menggunakan baris perintah.

mkdir js-crawler
cd js-crawler

3. Inisialisasi Proyek Node.js Baru

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

npm init -y

4. Instal Dalang

Instal Puppeteer dengan menjalankan perintah berikut di direktori proyek Anda

npm install puppeteer

5. Buat File JavaScript Baru

Buat file baru dengan nama

crawler.js

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

6. Tulis Kode Perayap

Membuka

crawler.js

dan tambahkan kode berikut:

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

Luncurkan contoh browser baru

const browser = await puppeteer.launch({ headless: true });

Buat halaman baru di browser

const page = await browser.newPage();

Arahkan ke URL target

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

Ekstrak data dari halaman menggunakan

evaluate()
const data = await page.evaluate(() => {

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

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

Tutup peramban

await browser.close();

Kembalikan data yang diekstraksi

return data;
}

Contoh penggunaan:

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

Ganti

https://example.com/

URL dengan URL situs web target dan sesuaikan

page.evaluate()

berfungsi untuk mengekstrak data yang Anda perlukan.

7. Jalankan Perayap

Jalankan perintah berikut di direktori proyek Anda untuk menjalankan crawler:

node crawler.js

Skrip akan meluncurkan browser tanpa kepala, menavigasi ke URL target, dan menjalankan kode JavaScript yang ditentukan di

page.evaluate()

fungsi. Data yang diekstraksi akan dicatat ke konsol.

Ingatlah bahwa ini adalah contoh dasar perayapan situs web JavaScript. Untuk kasus penggunaan 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 Anda telah menginstal Python dan pemahaman dasar tentang pemrograman Python.

Langkah 1: Instal perpustakaan yang diperlukan

Instal perpustakaan Permintaan dan Sup Cantik menggunakan pip:

pip install requests beautifulsoup4

Langkah 2: Impor perpustakaan

Impor perpustakaan yang diperlukan dalam skrip Python Anda:

import requests
from bs4 import BeautifulSoup

Langkah 3: Buat fungsi untuk mengambil konten halaman web

Buat fungsi untuk mengambil konten halaman web menggunakan perpustakaan Permintaan:

def fetch_page(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.text
    else:
        print(f"Failed to fetch {url} (status code {response.status_code})")
        return None

Langkah 4: Buat fungsi untuk mengurai konten halaman web

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

def parse_page(html):
    soup = BeautifulSoup(html, "html.parser")
return soup

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

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

def extract_links(soup, base_url):
   links = []
    for a_tag in soup.find_all("a"):
        href = a_tag.get("href")
        if href and not href.startswith("#"):
            if not href.startswith("http"):
                href = base_url + href
            links.append(href)
    return links

Langkah 6: Buat fungsi untuk merayapi situs web

Buat fungsi untuk merayapi situs web secara rekursif:

def crawl_website(url, max_depth=2, depth=0):
    if depth > max_depth:
        return
    html = fetch_page(url)
    if not html:
        return
    soup = parse_page(html)
    links = extract_links(soup, url)
    print(f"{'  ' * depth}[{depth}] {url}")
    for link in links:
        crawl_website(link, max_depth, depth + 1)

Langkah 7: Jalankan perayap

Jalankan crawler dengan memanggil

crawl_website

berfungsi dengan URL yang diinginkan dan kedalaman maksimum:

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

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

crawl_website

berfungsi untuk menangani struktur situs web tertentu, menambahkan logika untuk menyimpan informasi yang diekstraksi, atau menerapkan fitur perayapan yang lebih canggih seperti menangani robots.txt, pembatasan kecepatan, atau memparalelkan permintaan.

12 Tips Cara Merangkak Situs Web Tanpa Diblokir

Ini adalah strategi utama untuk perayapan web tanpa menemui pemblokiran:

#1: Verifikasi Protokol Pengecualian Robot

Sebelum merayapi atau mengikis situs web, pastikan target Anda mengizinkan pengumpulan data dari halaman mereka. Periksa berkas protokol pengecualian robot (robots.txt) situs web dan patuhi peraturan situs web tersebut.

Meskipun situs web mengizinkan perayapan, hormatilah situs tersebut dan jangan merusaknya. Patuhi peraturan yang ditetapkan dalam protokol pengecualian robot, perayapan di luar jam sibuk, batasi permintaan yang berasal dari satu alamat IP, dan tetapkan penundaan di antara permintaan.

Akan tetapi, meskipun situs web tersebut mengizinkan web scraping, Anda mungkin masih menemui pemblokiran, jadi penting untuk mengikuti langkah-langkah tambahan juga. Untuk panduan yang lebih lengkap, lihat tutorial Python web scraping kami.

#2: Memanfaatkan Server Proxy

Perayapan web hampir tidak mungkin dilakukan tanpa proxy. Pilih penyedia layanan proxy yang memiliki reputasi baik dan pilih antara pusat data dan proxy IP perumahan berdasarkan tugas Anda.

Menggunakan perantara antara perangkat Anda dan situs web target akan 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 proksi AS untuk mengakses konten web di Amerika Serikat.

Untuk hasil optimal, pilih penyedia proxy dengan kumpulan IP besar dan jangkauan lokasi luas.

#3: Putar Alamat IP

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

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

Semua Proksi Residensial Oxylabs merotasi IP, tetapi jika Anda menggunakan Proksi Pusat Data, Anda harus menggunakan layanan pemutar proksi. Kami juga merotasi proksi IPv6 dan IPv4. Jika Anda tertarik dengan perbedaan antara IPv4 vs IPv6, baca artikel yang ditulis oleh kolega saya Iveta.

#4: Gunakan Agen Pengguna Asli

Sebagian besar server yang menghosting situs web dapat memeriksa header permintaan HTTP yang dihasilkan bot perayapan. Header permintaan HTTP ini, yang disebut agen pengguna, berisi berbagai informasi mulai dari sistem operasi dan perangkat lunak hingga jenis aplikasi dan versinya.

Server dapat dengan mudah mendeteksi agen pengguna yang mencurigakan. Agen pengguna sebenarnya berisi konfigurasi permintaan HTTP populer yang dikirimkan oleh pengunjung organik. Untuk menghindari pemblokiran, pastikan untuk menyesuaikan agen pengguna Anda agar menyerupai agen organik.

Karena setiap permintaan yang dibuat oleh browser web berisi agen pengguna, Anda harus sering mengganti agen pengguna.

Penting juga untuk memanfaatkan agen pengguna yang terbaru dan terpopuler. Jika Anda mengajukan permintaan dengan agen pengguna yang berusia lima tahun dari versi Firefox yang tidak didukung, hal itu akan menimbulkan banyak tanda bahaya. Anda dapat menemukan basis data publik di internet yang menunjukkan agen pengguna mana yang saat ini paling populer. Kami juga memiliki basis data kami sendiri yang diperbarui secara berkala, jadi hubungi kami jika Anda memerlukan akses ke sana.

#5: Atur Sidik Jari Anda dengan Benar

Mekanisme anti-scraping menjadi lebih canggih, dan beberapa situs web menggunakan Transmisi Control Protocol (TCP) atau sidik jari IP untuk mendeteksi bot.

Saat melakukan scraping web, TCP meninggalkan berbagai parameter. Parameter ini ditetapkan oleh sistem operasi atau perangkat pengguna akhir. Jika Anda bertanya-tanya bagaimana cara menghindari masuk daftar hitam saat melakukan scraping, pastikan parameter Anda konsisten. Atau, Anda dapat menggunakan Web Unblocker – solusi proksi bertenaga AI dengan fungsionalitas sidik jari dinamis. Web Unblocker menggabungkan banyak variabel sidik jari sedemikian rupa sehingga bahkan saat mengidentifikasi satu sidik jari yang berfungsi terbaik, sidik jari tersebut tetap tampak acak dan dapat lolos pemeriksaan anti-bot.

#6: Hati-hati Terhadap Perangkap Honeypot

Berhati-hatilah terhadap jebakan honeypot yang merupakan tautan dalam kode HTML yang dapat dideteksi oleh web scraper namun tidak terlihat oleh pengguna organik. Perangkap ini digunakan untuk mengidentifikasi dan memblokir perayap web karena hanya robot yang akan mengikuti tautan ini. Meskipun menyiapkan honeypot memerlukan banyak pekerjaan, beberapa target mungkin menggunakannya untuk mendeteksi perayap web, jadi berhati-hatilah jika permintaan Anda diblokir dan perayap terdeteksi.

#7: Memanfaatkan Layanan Pemecahan CAPTCHA

CAPTCHA menimbulkan tantangan besar bagi perayapan web karena mengharuskan pengunjung memecahkan teka-teki untuk mengonfirmasi bahwa mereka adalah manusia. Teka-teki ini sering kali menyertakan gambar yang sulit dipahami oleh komputer. Untuk melewati CAPTCHA, gunakan layanan pemecahan CAPTCHA khusus atau alat perayapan siap pakai, seperti alat perayapan data Oxylabs, yang memecahkan CAPTCHA dan memberikan hasil siap pakai. Perilaku mencurigakan dapat memicu target untuk meminta pemecahan CAPTCHA.

#8: Mengubah Pola Perayapan

Agar tidak diblokir, ubah pola navigasi perayap Anda agar tampak kurang dapat diprediksi. Anda dapat menambahkan klik, gulir, dan gerakan tetikus acak untuk meniru perilaku penjelajahan pengguna biasa. Untuk praktik terbaik, pikirkan tentang cara pengguna biasa menjelajahi situs web dan terapkan prinsip tersebut ke alat tersebut. Misalnya, mengunjungi beranda sebelum meminta halaman dalam adalah pola yang logis.

#9: Kurangi Kecepatan Pengikis

Untuk mengurangi risiko pemblokiran, perlambat kecepatan scraper dengan menambahkan jeda acak di antara permintaan atau memulai perintah tunggu sebelum melakukan tindakan. Jika URL dibatasi kecepatannya, patuhi batasan situs web dan kurangi kecepatan scraping untuk menghindari pembatasan permintaan.

#10: Perayapan Selama Jam Di Luar Jam Sibuk

Crawler bergerak lebih cepat dibandingkan pengguna biasa dan dapat berdampak signifikan terhadap beban server. Perayapan selama waktu muat tinggi dapat berdampak negatif terhadap pengalaman pengguna karena lambatnya layanan. Untuk menghindari hal ini, lakukan crawling di luar jam sibuk, seperti setelah tengah malam (dilokalkan ke layanan), untuk mengurangi beban pada server.

#11: Hindari Pengikisan Gambar

Mengikis gambar bisa berisiko, karena sering kali gambar tersebut merupakan objek berisi data yang mungkin dilindungi hak cipta. Selain itu, gambar sering kali disembunyikan dalam elemen JavaScript, yang dapat meningkatkan kompleksitas proses pengikisan dan memperlambat web scraper. Untuk mengekstrak gambar dari elemen JS, prosedur pengikisan yang lebih rumit perlu dilakukan.

#12: Gunakan Browser Tanpa Kepala

Peramban tanpa kepala adalah alat yang bekerja seperti peramban biasa tetapi tanpa antarmuka pengguna grafis. Ini memungkinkan pengikisan konten yang dimuat dengan merender elemen JavaScript. Peramban yang paling banyak digunakan, Chrome dan Firefox, memiliki mode tanpa kepala yang dapat digunakan untuk web scraping tanpa memicu pemblokiran.

Video Tutorial Cara Merayapi Website

Dalam tutorial Oxylabs ini, Anda akan menemukan dasar-dasar perayapan web dan pentingnya hal tersebut untuk pengumpulan data sambil membahas aspek etika dan hukum. Tutorial ini menunjukkan alat-alat populer seperti Scrapy, Beautiful Soup, dan Selenium, dan membantu Anda memilih yang terbaik untuk kebutuhan Anda.

Tutorial ini membantu Anda memahami struktur situs web, membuat perayap web sederhana, dan mengekstrak informasi yang Anda butuhkan. Tutorial ini juga mengingatkan Anda untuk mengikuti tata cara pengikisan web yang baik, seperti mematuhi aturan robots.txt dan tidak membebani server secara berlebihan.

Video ini juga membantu Anda menangani tantangan seperti mendapatkan data dari halaman dinamis, menangani banyak halaman, dan menghindari pemblokiran. Ini menunjukkan cara menyimpan dan mengatur data Anda dan memberikan tips untuk membuat proyek perayapan web Anda lebih besar dan efisien. Terakhir, ini mengingatkan Anda untuk selalu mengikuti pedoman etika dan hukum.

Kesimpulan

Saat kita mencapai akhir penjelajahan mengasyikkan kita ke dunia perayapan web, menjadi jelas bahwa menguasai seni ini sama seperti memiliki peta harta karun di lanskap internet yang luas dan terus berubah. Kita telah menyelidiki seluk-beluk yang membedakan perayapan web dari pengikisan web, mengungkap berbagai strategi, dan menjelajah ke ranah dinamis situs web JavaScript dan perayapan web bertenaga Python.

Harta karun berupa tip dan saran kami memastikan bahwa upaya perayapan web Anda tetap bertanggung jawab dan etis, menghindari jebakan dan hambatan yang mungkin timbul di sepanjang proses. Jadi, saat Anda berlayar ke lautan digital tanpa batas, berbekal pengetahuan dan kebijaksanaan yang diperoleh dari artikel komprehensif ini, ingatlah bahwa kemampuan untuk memanfaatkan kekuatan perayapan web akan mengangkat Anda ke atas persaingan dan membuka permata tersembunyi di kedalaman dunia. dunia digital.

Alexander Schmidt

Alexander Schmidt adalah seorang insinyur perangkat lunak yang percaya pada bekerja lebih cerdas, bukan lebih keras. Dengan pengalaman selama 12 tahun menangani otomatisasi dan ekstraksi data web untuk analisis dan penelitian, ia memberdayakan bisnis dengan tips praktis dan wawasan berharga yang disampaikan dengan cara yang menyenangkan dan mudah dibaca untuk membantu orang lain memaksimalkan nilai dan kinerja solusi proxy mereka. Saat dia tidak mengubah pengaturannya atau berkonsultasi untuk UKM, Anda dapat melihat Alexander mengetahui berita teknologi terkini dan kemajuan AI.

Pilih dan Beli Proxy

Pilih jenis, lokasi, dan kuantitas untuk melihat harga secara instan.

Pilih dan Beli Proxy