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 dirayapi dan mana yang terlarang. Selain itu, ada sitemap.xml, yang lebih detail daripada robots.txt, yang memandu bot di jalur mana yang harus dirayapi 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 laman HTML statis karena konten sering kali dimuat dan dimanipulasi oleh kode JavaScript. Untuk merayapi situs web tersebut, Anda perlu menggunakan browser tanpa kepala yang dapat menjalankan JavaScript dan merender konten laman. Salah satu pilihan populer untuk tugas ini adalah kombinasi perpustakaan 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 perlukan. 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 melakukan crawling atau scraping pada situs web, pastikan target Anda mengizinkan pengumpulan data dari halaman mereka. Periksa file protokol pengecualian robot (robots.txt) situs web dan patuhi peraturan situs web.

Meskipun situs web mengizinkan perayapan, tetaplah bersikap hormat dan jangan merusak situs. Mematuhi peraturan yang ditentukan dalam protokol pengecualian robot, melakukan crawling di luar jam sibuk, membatasi permintaan yang berasal dari satu alamat IP, dan menetapkan penundaan antar permintaan.

Namun, meskipun situs web mengizinkan web scraping, Anda mungkin masih mengalami pemblokiran, jadi penting untuk mengikuti langkah-langkah tambahan juga. Untuk panduan yang lebih komprehensif, 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 mengurangi blok alamat IP, menjamin anonimitas, dan memungkinkan Anda mengakses situs web yang mungkin tidak tersedia di wilayah Anda. Misalnya, jika Anda berlokasi di Jerman, Anda mungkin perlu menggunakan proxy 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 kumpulan proxy, 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 Perumahan Oxylabs merotasi IP, tetapi jika Anda menggunakan Proksi Pusat Data, Anda harus menggunakan layanan rotator proksi. Kami juga merotasi proxy IPv6 dan IPv4. Jika Anda tertarik dengan perbedaan IPv4 vs IPv6, baca artikel yang ditulis oleh rekan 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 terkini dan terpopuler. Jika Anda membuat permintaan dengan agen pengguna berusia lima tahun dari versi Firefox yang tidak didukung, hal ini menimbulkan banyak tanda bahaya. Anda dapat menemukan database publik di internet yang menunjukkan agen pengguna mana yang paling populer saat ini. Kami juga memiliki database kami yang diperbarui secara berkala, jadi hubungi kami jika Anda memerlukan akses ke database tersebut.

#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 menggores 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. Alternatifnya, Anda dapat menggunakan Web Unblocker – solusi proksi bertenaga AI dengan fungsi sidik jari dinamis. Web Unblocker menggabungkan banyak variabel sidik jari sedemikian rupa sehingga meskipun mengidentifikasi satu sidik jari yang bekerja paling baik, sidik jari tersebut masih 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 menghadirkan tantangan besar bagi perayapan web karena mengharuskan pengunjung memecahkan teka-teki untuk mengonfirmasi bahwa mereka adalah manusia. Teka-teki ini sering kali berisi gambar yang sulit diuraikan oleh komputer. Untuk melewati CAPTCHA, gunakan layanan penyelesaian 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 penyelesaian CAPTCHA.

#8: Mengubah Pola Perayapan

Untuk menghindari pemblokiran, ubah pola navigasi perayap Anda agar tampak kurang dapat diprediksi. Anda dapat menambahkan klik acak, gulir, dan gerakan mouse untuk meniru perilaku penjelajahan pengguna biasa. Untuk praktik terbaik, pikirkan tentang bagaimana rata-rata pengguna menjelajahi situs web dan menerapkan prinsip-prinsip tersebut pada alat tersebut. Misalnya, mengunjungi halaman 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 suatu tindakan. Jika URL memiliki tarif terbatas, hormati batasan situs web dan kurangi kecepatan pengikisan 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 pengumpulan data sambil mendiskusikan aspek etika dan hukum. Ini menunjukkan 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 perlukan. Ini juga mengingatkan Anda untuk mengikuti perilaku web scraping yang baik, seperti menghormati 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 kami mencapai akhir penjelajahan kami yang mengasyikkan ke dalam dunia perayapan web, menjadi jelas bahwa menguasai seni ini sama dengan memiliki peta harta karun di lanskap internet yang luas dan terus berubah. Kami telah mempelajari seluk-beluk yang membedakan perayapan web dari pengikisan web, mengungkap beragam strategi, dan menjelajahi dunia dinamis situs web JavaScript dan perayapan web yang didukung 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