Panduan lengkap untuk melakukan web scraping dengan Python

Penulis :

Bereaksi :

Komentar

Web scraping dengan Python didasarkan pada dua pustaka utama: requests untuk mengunduh halaman web dan BeautifulSoup untuk mengekstrak datanya.

Dalam artikel ini, kamu akan mempelajari cara menginstalnya, menulis skrip pertamamu, dan menyimpan hasilnya, meskipun kamu belum pernah belajar pemrograman.

Prasyarat untuk melakukan scraping dengan Python

Melakukan web scraping dengan Python untuk mengekstrak data dari halaman web
Pengikisan web dengan Python. Cristina untuk Alucare.fr

Sebelum kamu memulainya, ada tiga syarat yang harus dipenuhi. Berikut ini adalah syarat-syarat tersebut dalam urutan yang logis.

1. Pengetahuan dasar tentang pemrograman

Kamu harus tahu tentang dasar-dasar pemrograman : variabel, struktur kontrol, fungsi, kamus, pengelolaan berkas, dan pustaka. Konsep-konsep ini memungkinkanmu untuk memahami logika skrip, memproses data yang diperoleh, dan menangani kesalahan dengan benar.

2. Menguasai struktur halaman web (HTML, CSS)

Python tidak melihat halaman web seperti yang kamu lihat. Python hanya melihat kode HTML yang membentuk halaman tersebut. Jika kamu ingin mengambil informasi tertentu, kamu harus tahu di mana letaknya dalam kode tersebut; jika tidak, Python tidak dapat mengekstraknya.

Struktur halaman web dalam HTML dan CSS yang perlu diidentifikasi sebelum melakukan scraping
Struktur halaman web dalam HTML dan CSS. ©Christina untuk Alucare.fr

3. Memahami permintaan HTTP (GET, POST)

Sebelum membaca kode suatu halaman, Python harus meminta kode tersebut dari situs melalui sebuah permintaan. Sebuah Dapatkan permintaan memuat ulang halaman, sedangkan sebuah permintaan POST mengirimkan data ke situs tersebut. Tanpa pemahaman ini, skripmu tidak akan bisa memuat halaman maupun informasi yang terkandung di dalamnya.

Hal penting lainnya: pengikisan web berbeda dengan crawling. Proses crawling menjelajahi semua halaman di sebuah situs web untuk mendata dan menganalisisnya. Sedangkan proses scraping hanya menargetkan informasi tertentu. Perbedaan ini berguna untuk merencanakan pekerjaanmu dengan baik.

Perbedaan antara web scraping yang ditargetkan dan crawling yang menjelajahi seluruh situs
Perbedaan antara web scraping dan crawling. Cristina untuk Alucare.fr

Apa saja alat bantu penting untuk web scraping dengan Python?

Sebagai langkah awal, kamu harus menyiapkan lingkungan kerja dalam tiga tahap: menginstal Python, mengisolasi proyekmu, lalu menambahkan pustaka yang diperlukan.

1. Menginstal Python

Unduh Python dari situs resmi python.org. Saat menginstalnya di Windows, pastikan untuk mencentang opsi Tambahkan Python ke PATH. Kotak ini menambahkan folder Python dan subfolder Scripts\ di PATH, sehingga perintah tersebut pip tersedia langsung melalui baris perintah.

Dari Python 3.4, pip sudah disertakan secara default. Ini adalah pengelola paket yang memungkinkanmu menginstal semua pustaka yang kamu butuhkan. Jika suatu saat tidak dikenali, perintah python -m pip selalu berhasil.

2. Mempersiapkan lingkungan virtual

A lingkungan virtual memisahkan pustaka-pustaka dari proyek Python-mu, tanpa mengganggu aplikasi lain di komputermu. Kamu dapat membuatnya dengan python -m venv venv, lalu aktifkan. Dengan demikian, instalasi-instalasi tersebut akan tetap khusus untuk proyek ini.

3. Instal pustaka utama untuk melakukan scraping

A Perpustakaan adalah kumpulan fungsi yang sudah diprogram dan dapat langsung kamu gunakan dalam kode kamu. Fitur ini menghindarkan kamu dari menulis ulang semuanya sendiri dan mempermudah tugas-tugas yang berulang. Berikut ini adalah yang utama:

Daftar pustaka Python yang wajib dimiliki untuk web scraping: requests, BeautifulSoup, Selenium, Scrapy
Pustaka Python yang paling sering digunakan untuk web scraping. ©Christina untuk Alucare.fr
  • Requests : mengirimkan permintaan HTTP dan mengambil konten halaman web. Ini merupakan dasar dari semua proses scraping.
  • BeautifulSoup : menganalisis kode HTML dan mengekstrak informasi menggunakan pemilih yang praktis seperti find(), find_all() Di mana select().
  • Selenium : berguna ketika konten dihasilkan secara dinamis menggunakan JavaScript. Fitur ini mensimulasikan peramban sungguhan dan berinteraksi dengan halaman tersebut.
  • lxml : sebuah alat analisis HTML dan XML yang sangat cepat, dengan kinerja yang lebih baik daripada BeautifulSoup, tetapi agak lebih rumit untuk dikuasai.
  • Playwright : alternatif modern untuk Selenium, yang seringkali lebih cepat.
  • Scrapy : sebuah kerangka kerja yang tangguh untuk proyek-proyek penggalian data berskala besar, yang mampu mengelola beberapa halaman dan beberapa situs secara bersamaan.

Bagaimana cara melakukan web scraping dengan Python?

Berikut ini adalah panduan langkah demi langkah untuk memulai proyek scraping pertamamu. Setiap langkah dilengkapi dengan sebuah potongan kode siap untuk disalin.

Langkah 1: Menginstal pustaka (requests dan beautifulsoup4)

Kamu memerlukan dua pustaka: requests untuk mengambil halaman-halaman tersebut dan beautifulsoup4 untuk mengekstrak datanya. Instal semuanya sekaligus dengan pip :

permintaan pemasangan pip beautifulsoup4

Apakah pip tidak dikenali, gunakan python -m pip install requests beautifulsoup4, yang akan berfungsi terlepas dari pengaturan PATH-mu. Selanjutnya, awali skripmu dengan dua baris berikut:

import requests
from bs4 import BeautifulSoup

Langkah 2: Buat permintaan HTTP dan ambil konten

Setelah pustaka-pustaka tersebut siap, kamu dapat mengirimkan sebuah Permintaan HTTP menuju halaman web dan menampilkan isinya. Ingatlah untuk menggunakan’URL lengkap dari halaman tujuan:

permintaan impor

url = "https://exemple.com"
page = requests.get(url)

print(page.text) # Menampilkan kode HTML dari halaman

Ini, page.text berisi seluruh kode HTML dari situs yang akan kamu analisis.

Langkah 3: Memparser HTML dengan BeautifulSoup

Sekarang setelah kamu mendapatkan kontennya, kamu bisa menganalisisnya dengan BeautifulSoup. Langkah ini mengubah HTML biasa dalam struktur yang mudah dijelajahi:

from bs4 import BeautifulSoup

sup = BeautifulSoup(page.text, "html.parser")

# Contoh: menampilkan judul halaman
print(sup.title.string)

Langkah 4: Ekstrak data spesifik (judul, tautan, dll.)

Terima kasih kepada BeautifulSoup, kamu bisa menargetkan tag HTML tertentu : judul, tautan, paragraf, dll. Dua contoh yang paling umum adalah:

# Ekstrak semua judul <h2>
for judul in sup.find_all("h2"):
    print(judul.get_text())

# Ekstrak semua tautan <a>
for lien in soup.find_all("a"):
    print(link["href"])

Langkah 5: Menyimpan data (CSV, JSON)

Setelah data kamu diekstraksi, kamu bisa menyimpan ke dalam berkas untuk digunakan kembali nanti. Format CSV cocok untuk lukisan, yang JSON data terstruktur.

Contoh dalam CSV :

impor csv

titles = [title.get_text() for title in soup.find_all("h2")]

with open("hasil.csv", "w", newline="", encoding="utf-8") as f:
    penulis = csv.writer(f)
    penulis.writerow(["Judul"])
    untuk t dalam titres:
        writer.writerow([t])

Contoh dalam JSON :

import json

lien = [lien["href"] for lien in soup.find_all("a")]

with open("liens.json", "w", encoding="utf-8") as f:
    json.dump(liens, f, indent=4, ensure_ascii=False)

Tutorial ini ditujukan untuk proyek kecil, seperti melakukan scraping pada situs statis. Dalam praktiknya, kamu akan segera menghadapi tantangan yang lebih rumit:

  • Mengelola penomoran halaman : gulir ke beberapa halaman untuk melihat semuanya.
  • Mengelola formulir : mengirimkan data melalui permintaan POST untuk mendapatkan hasil yang telah difilter.
  • Menyiasati pembatasan : tambahkan header identifikasi yang realistis dan melalui proxy untuk menghindari macet.

Mengapa web scraping dengan Python?

itu scraping web dengan Python membuka banyak peluang nyata bagi Anda. Berikut adalah berbagai kegunaan yang membuat praktik ini benar-benar bermanfaat dalam kehidupan sehari-hari.

  • Pelacakan harga dan e-commerce : kamu mengumpulkan lembar data produk untuk memantau perkembangan tarif, membandingkan penawaran dari para pesaing, dan menemukan peluang terbaik secara real-time.
  • Analisis ulasan pelanggan : Anda mengumpulkan komentar dari berbagai situs web untuk mengidentifikasi tren, memahami harapan konsumen, dan meningkatkan suatu produk atau layanan.

Skrip Python untuk web scraping yang menampilkan data yang diekstraksi dari sebuah halaman web
Hasil dari skrip web scraping menggunakan Python. ©Christina untuk Alucare.fr
  • Agregasi konten : Anda mengumpulkan artikel blog atau berita dari berbagai sumber untuk membuat platform yang selalu terupdate.
  • Penelitian dan pemantauan : kamu mengumpulkan data untuk penelitian, memantau publikasi, atau mengamati sektor tertentu.

Dalam praktiknya, web scraping menghemat waktu berjam-jam yang biasanya dihabiskan untuk menyalin dan menempel secara manual. Satu skrip yang dirancang dengan baik dapat mengambil dan memperbarui data kamu secara otomatis, sesuai frekuensi yang kamu tentukan.

Apa saja praktik terbaik untuk web scraping dengan Python?

Web scraping bukan sekadar mengekstrak data. Hal ini juga harus dilakukan dengan cara efektif, bertanggung jawab, dan berkelanjutan, kalau tidak, kamu bisa dengan cepat diblokir. Berikut ini aturan yang harus diikuti:

  • Hormati file robots.txt : terdapat di akar sebuah situs (mis. exemple.com/robots.txt), file tersebut menunjukkan halaman-halaman yang diizinkan atau dilarang untuk di-scraping. Silakan periksa file tersebut sebelum menjalankan skripmu.
  • Menjaga frekuensi permintaan yang wajar : tambahkan jeda di antara setiap permintaan untuk mencegah server kewalahan dan agar kamu tidak diblokir.
  • Gunakan User-Agent yang sesuai : mengisi header User-Agent yang secara jelas mengidentifikasi robotmu, bukan nilai default dari requests, yang sering kali diblokir secara otomatis.
  • Mengelola kesalahan dan pengecualian : letakkan permintaanmu di dalam blok penanganan kesalahan. Halaman yang tidak tersedia tidak boleh membuat seluruh programmu macet.
  • Menggunakan proxy dan rotasi IP : pada volume yang besar, menggunakan beberapa alamat IP secara bergantian dapat mencegah agar satu alamat IP tidak terdeteksi dan kemudian diblokir.
  • Meminimalkan jumlah permintaan : hanya ambil halaman-halaman yang benar-benar kamu butuhkan. Semakin sedikit permintaan, semakin ringan beban server, dan semakin kecil risiko terdeteksi.
  • Tetap transparan : jika memungkinkan, cantumkan sebuah alamat email kontak di dalam User-Agent. Dengan demikian, pengelola situs dapat menghubungimu alih-alih memblokirmu.
  • Memisahkan proses ekstraksi dan pencadangan : pertama-tama ambil datanya, lalu simpan dalam berkas CSV atau basis data. Jika proses pengolahan gagal, data yang telah kamu kumpulkan tidak akan hilang.
  • Gunakan selektor yang andal : mengutamakan atribut yang stabil seperti id Di mana data-* daripada kelas CSS yang sering berubah. Skripmu akan lebih tahan terhadap pembaruan situs.
  • Buat dokumentasi kode kamu : jelaskan langkah-langkah utama dan catat tanggal pengambilan datamu. Struktur sebuah halaman terus berkembang, dan kamu akan lebih cepat memahami apa yang perlu diperbaiki saat terjadi kesalahan.

FAQ

Apa kerangka kerja terbaik untuk web scraping di Python?

Tidak ada kerangka kerja tunggal yang 'terbaik', karena semuanya tergantung pada tingkat kerumitan proyekmu.

Perbandingan antara framework Requests, BeautifulSoup, Selenium, dan Scrapy untuk web scraping dengan Python.
Kerangka kerja web scraping utama dengan Python berdasarkan jenis proyek. ©Christina untuk Alucare.fr
  • Untuk ekstraksi sederhana, Requests dan BeautifulSoup sudah lebih dari cukup.
  • Ketika sebuah situs web menggunakan banyak JavaScript, lalu lanjut ke Selenium Di mana Playwright.
  • Terakhir, untuk proyek berskala besar, Scrapy tetap menjadi pilihan yang paling tepat berkat performa dan strukturnya yang kokoh.

Bagaimana cara mengikis situs web di Python?

Proses ini didasarkan pada tiga tahap utama :

  1. Kamu mengirimkan sebuah Permintaan HTTP ke halaman tujuan.
  2. Kamu menganalisis struktur HTML telah diterima.
  3. Kamu mengekstrak data yang kamu minati, lalu simpanlah.

Apa peran web scraper?

itu peran web scraper adalah menjelajahi halaman web secara otomatis untuk mengekstrak data tertentu: teks, harga, gambar, atau tautan. Alat ini bertindak sebagai perantara antara situs web dan kamu, dengan mengubah informasi mentah menjadi data yang dapat dimanfaatkan.

Skrip Python sedang dijalankan untuk mengekstrak data dari sebuah halaman web.
Sebuah web scraper Python yang mengekstrak data dari sebuah halaman web. ©Christina untuk Alucare.fr

Bagaimana cara menggunakan BeautifulSoup di Python?

BeautifulSoup adalah pustaka yang dirancang untuk menganalisis kode HTML suatu halaman dan dengan mudah menemukan tag yang berisi informasi yang akan diekstraksi. Secara praktis, kamu menggabungkan sebuah permintaan HTTP dengan Requests, lalu kamu mengurai isinya dengan BeautifulSoup untuk menelusuri struktur dan mengambil data yang diinginkan.

Bagaimana cara melakukan scraping pada situs web dengan konten dinamis yang menggunakan JavaScript?

Beberapa situs sangat bergantung pada JavaScript untuk menampilkan isinya. Dalam hal ini, solusi konvensional seperti Requests tidak lagi cukup. Maka, kamu harus menggunakan alat yang mampu mensimulasikan peramban sungguhan, seperti Selenium Di mana Playwright, untuk memuat dan berinteraksi dengan halaman tersebut.

Bahasa apa yang paling umum digunakan untuk web scraping?

Python saat ini merupakan bahasa pemrograman yang paling populer untuk web scraping, berkat kesederhanaannya dan kekayaan pustaka khusus yang dimilikinya. Meskipun demikian, kamu juga dapat mengotomatiskan...’ekstraksi data dengan PHP, meskipun teknik ini masih kurang umum.

Apakah web scraping legal?

Itu legalitas web scraping adalah pertanyaan yang rumit. Semuanya tergantung pada cara kamu melakukannya, serta kepatuhan terhadap kondisi penggunaan lokasi dan jenis data yang dikumpulkan. Di Prancis, web scraping adalah diperbolehkan dalam beberapa kasus, tetapi hal itu dapat menjadi ilegal jika melanggar hak akses, ketentuan penggunaan suatu situs, atau undang-undang mengenai data pribadi.

Singkatnya, web scraping dengan Python membuka segudang kemungkinan yang luar biasa! Bagaimana denganmu, apa saja pengalaman atau pertanyaanmu? Jangan ragu untuk membagikannya di kolom komentar, kami tidak sabar untuk membacanya!

👍Pendapat Anda
Artikel ini informatif
Artikel ini objektif
Artikel ini menjawab pertanyaan saya
Kontennya selalu diperbarui
🔍 Menemukan kesalahan? Beritahu kami di mana!

Suka? Bagikan!

Konten ini aslinya adalah di Perancis (Lihat editor tepat di bawah). Buku ini telah diterjemahkan dan dikoreksi dalam berbagai bahasa menggunakan Deepl dan/atau Google Translate API untuk menawarkan bantuan di sebanyak mungkin negara. Penerjemahan ini menghabiskan biaya beberapa ribu euro per bulan. Jika terjemahan ini tidak 100 % sempurna, tinggalkan komentar agar kami dapat memperbaikinya. Jika Anda tertarik untuk mengoreksi dan meningkatkan kualitas artikel yang diterjemahkan, silakan kirim email kepada kami menggunakan formulir kontak!
Kami menghargai umpan balik Anda untuk meningkatkan konten kami. Jika Anda ingin memberikan saran perbaikan, silakan gunakan formulir kontak kami atau tinggalkan komentar di bawah ini. Komentar Anda selalu membantu kami meningkatkan kualitas situs web kami Alucare.fr


Alucare adalah media independen. Dukung kami dengan menambahkan kami ke favorit Google News Anda:

Kirimkan komentar di forum diskusi