Panduan lengkap untuk melakukan web scraping dengan Python

Penulis :

Bereaksi :

Komentar

itu pengikisan web adalah teknik untuk mengumpulkan data secara online. Hal ini dapat dilakukan dengan menggunakan alat tertentu.

Dalam artikel ini kita akan melihat bagaimana mengekstrak data dengan Python.

Prasyarat untuk melakukan scraping dengan Python

Scraping web dengan Python.
Pengikisan web dengan Python. Cristina untuk Alucare.fr

Ada beberapa syarat yang harus dipenuhi sebelum Anda dapat menggunakan Python untuk web scraping.

1. Pengetahuan dasar tentang pemrograman

Pertama dan terutama, Anda harus mengetahui beberapa hal berikut ini dasar-dasar pemrograman variabel, struktur kontrol, fungsi, kamus, manipulasi file, modul, pustaka, dll.

Konsep-konsep ini akan membantu Anda memahami logika skrip, memanipulasi data yang telah diambil, mengotomatisasi tugas-tugas berulang, dan mengelola kesalahan dan pengecualian.

2. Menguasai struktur halaman web (HTML, CSS)

Python tidak melihat halaman web seperti yang kita lakukan. Ia hanya melihat kode yang membentuk halaman ini. Jadi, jika Anda ingin mengambil informasi tertentu, Anda harus tahu di mana letaknya di dalam kode.

Tanpa memahami hal ini, Python tidak dapat mengekstrak apa yang Anda inginkan.

Struktur halaman web: HTML, CSS.
Struktur halaman web: HTML, CSS. ©Christina untuk Alucare.fr

3. Memahami permintaan HTTP (GET, POST)

Sebelum Anda dapat membaca kode halamanPython harus memintanya dari situs melalui kueri. A Dapatkan permintaan Memungkinkan untuk memuat halaman dan permintaan POST memungkinkan pengiriman data ke situs.

Tanpa mengetahui cara kerja permintaan, skrip Anda tidak akan dapat mengakses halaman maupun informasi yang terkandung di dalamnya.

Singkatnya, struktur halaman memberi tahu Anda di mana harus mencari data. Kunjungi Permintaan HTTP memungkinkan Anda untuk meminta data ini dari situs.

💡 Pengingat : Web scraping berbeda dengan crawling. Crawling melibatkan penelusuran semua halaman situs web untuk mengidentifikasi dan menganalisisnya. Scraping, di sisi lain, hanya menargetkan informasi spesifik. Perbedaan ini penting untuk merencanakan pekerjaan dengan benar.

Perbedaan antara web scraping dan crawling.
Perbedaan antara web scraping dan crawling. Cristina untuk Alucare.fr

⚠️ Komentar Sebelum melakukan scraping pada sebuah halaman, Anda mengirimkan permintaan HTTP untuk mendapatkan kontennya. Namun, tidak semua situs web mengizinkan semua halaman mereka diakses secara otomatis. Di sinilah file robots.txt berperan. File ini menunjukkan halaman mana yang boleh dijelajahi dan halaman mana yang dilarang. Anda harus mematuhi file ini untuk tetap legal dan etis.

Apa saja alat bantu penting untuk web scraping dengan Python?

Untuk memulai web scraping dengan Python, Anda perlu mempersiapkan lingkungan Anda.

1. Menginstal Python

Untuk pemasangan, disarankan untuk menggunakan pipIni adalah alat manajemen paket yang digunakan untuk menginstal semua perpustakaan yang Anda butuhkan dengan mudah.

2. Mempersiapkan lingkungan virtual

Setiap proyek dapat memiliki perpustakaannya sendiri, terlepas dari aplikasi lain di komputer Anda. Lingkungan virtual akan memungkinkan untukmengisolasi perpustakaan proyek Python Anda tanpa mempengaruhi program lain atau mesin Anda.

3. Instal pustaka utama untuk melakukan scraping

Dalam konteks ini, sebuah Perpustakaan adalah kumpulan alat dan fungsi yang sudah diprogram yang dapat Anda gunakan langsung di Kode Python. Anda tidak perlu menulis semuanya sendiri dan membuat tugas-tugas tertentu menjadi lebih mudah. Berikut ini hanya beberapa di antaranya.

Berbagai jenis pustaka untuk web scraping dengan Python.
Berbagai jenis pustaka untuk scraping web dengan Python. Cristina untuk Alucare.fr
  • Permintaan : untuk mengirim permintaan HTTP dan mengambil konten halaman web. Ini adalah dasar untuk semua operasi scraping.
  • BeautifulSoup untuk menganalisis kode HTML dan mengekstrak informasi. Ia menawarkan metode (atau selektor) seperti find(), find_all(), select().
  • Selenium Berguna ketika konten halaman dihasilkan secara dinamis dengan JavaScript. Ini memungkinkan untuk mensimulasikan browser lengkap dan berinteraksi dengan halaman.
  • lxml Pengurai HTML dan XML yang sangat cepat. Lebih kuat daripada BeautifulSoup, tetapi sedikit lebih rumit untuk digunakan.
  • Penulis naskah alternatif yang lebih modern dan sering kali lebih cepat untuk Selenium.
  • Scrapy Kerangka kerja yang kuat untuk proyek scraping berskala besar. Kerangka kerja ini memudahkan untuk mengelola beberapa halaman dan situs secara bersamaan.

Bagaimana cara melakukan web scraping dengan Python?

Dalam tutorial ini, kita akan melihat langkah demi langkah cara memulai web scraping di Python.

Langkah 1: Menginstal perpustakaan (request dan beautifulsoup4)

Untuk memulai, Anda memerlukan dua pustaka Python : permintaan dan beautifulsoup4. Instal semuanya sekaligus menggunakan pip:

permintaan pemasangan pip beautifulsoup4

Saat menggunakan kedua perpustakaan, jangan lupa untuk memulai skrip Anda dengan:

permintaan impor
from bs4 import BeautifulSoup 

Langkah 2: Buat permintaan HTTP dan ambil konten

Setelah perpustakaan diinstal, Anda dapat mengirim permintaan HTTP ke halaman web dan menampilkan isinya. Gunakan URL lengkap dari halaman tujuan. Anda akan menggunakan skrip berikut untuk permintaan:

permintaan impor

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

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

Ini, page.text berisi semua HTML untuk situs yang akan Anda analisis.

Langkah 3: Mengurai HTML dengan Beautiful Soup

Sekarang setelah Anda telah mengambil konten halaman, Anda dapat menganalisisnya dengan BeautifulSoup menggunakan skrip berikut:

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 BeautifulSoupAnda dapat menargetkan tag HTML tertentu: judul, tautan, paragraf, dll.

# 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 Anda diekstrak, Anda dapat menyimpannya ke sebuah file untuk digunakan kembali.

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)

⚠️ Komentar Tutorial ini adalah untuk proyek kecil seperti mengikis situs statis. Namun, dalam praktiknya web scraping dengan PythonAnda dapat dengan cepat menghadapi tantangan tambahan seperti :

  • Mengelola penomoran halaman Mengotomatiskan penggosokan di beberapa halaman.
  • Mengelola formulir Kirim data untuk mendapatkan hasil.
  • Menyiasati pembatasan menggunakan agen-pengguna dan proksi.

Mengapa web scraping dengan Python?

itu scraping web dengan Python adalah keterampilan yang kuat yang membuka banyak kemungkinan. Berikut adalah beberapa penggunaan konkret yang membuat praktik ini sangat menarik.

  • Pelacakan harga dan e-commerce

Menggoreskan lembar produk untuk memantau perkembangan harga, membandingkan penawaran pesaing, dan dengan cepat mengidentifikasi peluang terbaik.

  • Analisis sentimen 

Kumpulkan ulasan pelanggan dari berbagai situs untuk mengidentifikasi tren, memahami ekspektasi konsumen, dan meningkatkan produk atau layanan mereka.

Scraping web dengan Python.
Pengikisan Web dengan Python. Cristina untuk Alucare.fr
  • Agregasi konten 

Sentralisasi artikel blog atau berita dari beberapa sumber untuk menciptakan platform yang selalu up to date dan kaya akan informasi.

  • Penelitian dan pemantauan akademik

Mengumpulkan data untuk studi, memantau publikasi atau sektor tertentu.

Apa saja praktik terbaik untuk web scraping dengan Python?

Web scraping bukan hanya tentang mengekstrak data. Ini juga tentang melakukannya dengan cara yang efisien, bertanggung jawab, dan berkelanjutan.

Untuk menghindari kemacetan, tetap berada di dalam hukum dan mendapatkan hasil yang dapat diandalkan, sangat penting untuk mengikuti praktik-praktik yang baik:

  • 🤖 Hormati file robots.txt
  • ⏳ Menerapkan kecepatan permintaan yang wajar
  • 🕵️‍♂️ Gunakan Agen Pengguna yang relevan
  • ⚠️ Mengelola kesalahan dan pengecualian
  • 🌐 Menggunakan Proxy dan Rotator IP
  • 📉 Meminimalkan permintaan
  • 🔍 Bersikaplah transparan dalam permintaan Anda
  • 📂 Memisahkan proses ekstraksi dari pencadangan data
  • 🛠️ Gunakan selektor yang kuat
  • 📖 Mendokumentasikan kode Anda

FAQ

Apa kerangka kerja terbaik untuk web scraping di Python?

Tidak ada satu pun framework yang "terbaik", karena semuanya tergantung pada... kompleksitas proyek.

Beberapa kerangka kerja untuk web scraping dengan Python.
Beberapa kerangka kerja untuk scraping web dengan Python. Cristina untuk Alucare.fr

Untuk ekstraksi sederhana, Permintaan dan BeautifulSoup cukup memadai. Ketika sebuah situs menggunakan banyak JavaScript, Selenium Di mana Penulis naskah menjadi sangat penting. Terakhir, untuk proyek berskala besar, Scrapy direkomendasikan karena performa dan strukturnya yang kuat.

Bagaimana cara mengikis situs web di Python?

Proses web scraping dengan Python didasarkan pada tiga tahap utama:

  • Pengiriman permintaan HTTP
  • Analisis struktur HTML
  • Ekstraksi data

Apa peran web scraper?

itu peran pengikis web adalah secara otomatis menjelajahi halaman web untuk mengekstrak data yang akurat, baik berupa teks, harga, gambar, atau tautan. Ia bertindak sebagai perantara antara situs dan pengguna dengan mengubah informasi mentah menjadi data yang dapat dimanfaatkan.

Pengikis web yang mengikis dengan Python.
Sebuah web scraper sedang melakukan scraping dengan Python. ©Christina untuk Alucare.fr

Bagaimana cara menggunakan Beautiful Soup di Python?

BeautifulSoup adalah perpustakaan yang dirancang untuk menganalisis kode HTML suatu halaman dan memudahkan pencarian tag yang mengandung informasi yang akan diekstraksi.

Cukup gabungkan Permintaan HTTP dengan Permintaankemudian mengurai konten dengan BeautifulSoup untuk menavigasi struktur dan mengambil data yang Anda butuhkan.

Bagaimana cara mengikis situs web dengan JavaScript?

Beberapa situs sangat bergantung pada JavaScript untuk menampilkan konten mereka. Dalam hal ini, solusi konvensional seperti Requests tidak cukup. Oleh karena itu, diperlukan penggunaan alat yang mampu mensimulasikan browser asli. Di antaranya adalah Selenium dan Penulis naskah, untuk memuat dan berinteraksi dengan halaman.

Bahasa apa yang paling umum digunakan untuk web scraping?

Python Saat ini, JavaScript adalah bahasa pemrograman paling populer untuk web scraping berkat kesederhanaannya dan kekayaan perpustakaannya yang khusus.

Namun, dimungkinkan untuk mengotomatisasiekstraksi data dengan PHPmeskipun teknik ini kurang tersebar luas.

Apakah web scraping legal?

Itu legalitas web scraping adalah pertanyaan yang kompleks. Semuanya tergantung pada cara pelaksanaannya, kepatuhan terhadap ketentuan penggunaan situs, dan sifat data yang dikumpulkan.

Di Prancis, pengikisan web Diperbolehkan dalam beberapa kasus. Namun, hal ini dapat menjadi ilegal jika melanggar hak akses, syarat penggunaan situs, atau undang-undang tentang data pribadi.

Singkatnya, web scraping dengan Python membuka dunia yang penuh dengan kemungkinan yang luar biasa. Apa pengalaman atau pertanyaan Anda? Bagikan di kolom komentar, kami tidak sabar untuk mendengarnya dari Anda!

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