How web scrape with chatgpt python cover

Banyak orang percaya bahwa alat AI seperti ChatGPT atau Gemini mengambil terlalu banyak pekerjaan kita, menggantikan upaya manusia yang nyata, bahkan mengubah cara kita berpikir dan mengambil keputusan. Hal ini sering menimbulkan kekhawatiran tentang masa depan pekerjaan dan kreativitas. Namun, apakah AI benar-benar ancaman yang terlalu dibesar-besarkan, atau sekadar asisten kecil yang membantu kita ketika digunakan secara seimbang?

Ambil web scraping sebagai contoh. Secara tradisional, membuat scraper memerlukan pengetahuan coding yang kuat, ketelitian, dan kemampuan debugging. Dengan ChatGPT, bahkan pemula dapat menghasilkan script scraping siap pakai dalam hitungan detik, sementara profesional dapat menghemat waktu berjam-jam dengan membiarkan AI menangani tugas coding yang berulang. Alih-alih menggantikan developer, AI berfungsi sebagai alat produktivitas yang andal untuk mengurangi pekerjaan rutin.

Jenis scraping ini dapat berguna bagi peneliti yang mengumpulkan data, bisnis yang memantau pesaing, atau pelajar yang mempelajari Python. Dengan menggabungkan kemampuan ChatGPT untuk menulis dan menjelaskan code dengan library scraping Python, siapa pun dapat membuat scraper yang efisien dan cepat.

Alat Utama yang Anda Perlukan untuk Memulai

Sebelum memulai web scraping halaman Amazon menggunakan Python, mari pastikan environment kita telah disiapkan dengan benar. Kita memerlukan:

  • Visual Studio Code (atau code editor lainnya) 

Unduh VS Code dari situs web resmi lalu ikuti petunjuk instalasi untuk sistem operasi Anda. Kemudian, buka VS Code dan instal ekstensi Python dengan mengeklik ikon kotak di sidebar. Buka folder tempat Anda ingin membuat project dengan memilih File – Open Folder. Buat file Python baru untuk script Anda, misalnya, scraping_gpt_test.py

  • Python dan library-nya (Requests, BeautifulSoup)

Jika Python 3.x belum terinstal di komputer Anda, Anda dapat mengunduhnya dari https://www.python.org/. Periksa apakah Python telah terinstal dengan menjalankan salah satu perintah berikut:


python --version
      
        

      


python3 --version
      
        

      

Beberapa sistem masih mengaitkan python dengan Python 2, jadi gunakan python3 (dan pip3) untuk memastikan Anda menjalankan Python 3. Untuk menggunakan library Python, instal terlebih dahulu pip dengan salah satu perintah berikut:


python -m ensurepip
      
        

      


python3 -m ensurepip
      
        

      

Selanjutnya, buka Terminal di komputer Anda, lalu instal library Python dengan:


pip install requests beautifulsoup4 
      
        

      


pip3 install requests beautifulsoup4 
      
        

      

Tekan Enter, lalu Anda akan melihat apakah library tersebut berhasil diinstal.

  • akun ChatGPT

Buat akun OpenAI gratis atau berbayar untuk mengakses ChatGPT, yang akan Anda gunakan untuk menulis, melakukan debugging, dan menyempurnakan script scraping Anda. 

  • proxy DataImpulse

Kita akan mengintegrasikan proxy menggunakan kredensial proxy. Anda dapat mengakses semua informasi yang diperlukan di dashboard DataImpulse, pada detail paket yang Anda pilih.

Anda juga dapat menyalin detail yang tepat pada bagian Contoh URL dasar.

  • Situs web yang ingin Anda ambil datanya

Dalam tutorial ini, kita menggunakan Wikipedia dan daftar negara berdasarkan jumlah penduduk. Ingat untuk menggantinya dengan situs web target Anda dalam code. 

👉 Selalu ikuti aturan: periksa ketentuan layanan situs web dan file robots.txt sebelum melakukan scraping agar tetap aman dan etis.

Dapatkah ChatGPT Menghasilkan Code Scraping Python? Mari kita uji

1. Periksa halaman target dan temukan elemen untuk scraping.

Klik kanan elemen yang Anda inginkan, misalnya nama negara atau angka populasi, lalu pilih Inspect di browser Anda. Tindakan ini akan membuka panel Developer Tools. Arahkan kursor ke HTML yang disorot untuk memastikan Anda telah memilih elemen yang benar.

2. Simpan code HTML dari elemen tersebut.

Setelah menemukan elemennya, klik kanan HTML pada panel lalu salin CSS selector.

3. Buat prompt yang terperinci untuk ChatGPT.

Tulis prompt yang mencakup:

  • URL target;
  • selector yang Anda salin;
  • library yang ingin Anda gunakan, misalnya requests, BeautifulSoup);

Sebutkan proxy dan header, TETAPI jangan bagikan kredensial Anda kepada ChatGPT.  

Tempelkan prompt Anda ke ChatGPT. Prompt kami: 

“Buat web scraper menggunakan library Python, Beautiful Soup, dan Requests. Impor time. Situs web target: 

https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population

Tujuan: Ambil data negara dan angka populasinya pada halaman target. Gunakan proxy DataImpulse sebagai perlindungan tambahan. Tambahkan header. 

Berikut CSS selector-nya:

  • Negara: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(1) > a
  • Populasi: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(2)

Keluaran: Simpan semua data hasil scraping dalam file CSV.

Instruksi tambahan: Hapus simbol yang tidak diinginkan pada CSV keluaran.”

Berikut respons dari ChatGPT:

  • Tinjau dan jalankan code akhir.

Salin script ke editor Anda lalu jalankan. Debugging mungkin diperlukan jika selector atau formatnya berbeda. Jika Anda menggunakan proxy, selalu sertakan header User-Agent untuk mendukung akses yang konsisten. Menambahkan import time memungkinkan Anda menggunakan jeda di antara request (time.sleep()), yang membantu menyeimbangkan beban request. Berikut code-nya: 


import requests
from bs4 import BeautifulSoup
import csv
import re
import time
# DataImpulse proxy configuration
PROXY = "http://username:[email protected]:8000"
proxies = {
    "http": PROXY,
    "https": PROXY
}
url = "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population"
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/119.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}

# Try with retry logic
for attempt in range(3):
    try:
        response = requests.get(url, headers=headers, proxies=proxies, timeout=15)
        response.raise_for_status()
        break
    except requests.exceptions.HTTPError as e:
        print(f"Attempt {attempt+1}: HTTP error {e}. Retrying...")
        time.sleep(2)
else:
    raise SystemExit("Failed to fetch the page after retries.")

soup = BeautifulSoup(response.text, "html.parser")

# Locate the first wikitable
table = soup.find("table", {"class": "wikitable"})
rows = table.find_all("tr")
data = []
for row in rows[1:]:  # skip header row
    cols = row.find_all("td")
    if len(cols) >= 2:
        country = cols[0].get_text(strip=True)
        population = cols[1].get_text(strip=True)

        # Clean unwanted symbols
        population = re.sub(r"\[.*?\]", "", population)  # remove [1], [note] etc.
        population = population.replace(",", "").replace("\xa0", " ").strip()

        data.append([country, population])

# Save results to CSV
with open("countries_population.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["Country", "Population"])
    writer.writerows(data)
print("Scraping completed. Data saved to countries_population.csv")

      
        






















































      

Setelah script berjalan, terminal VS Code Anda akan menampilkan:

Sekarang buka file countries_population.csv. Di dalamnya, Anda akan menemukan lembar kerja terstruktur berisi negara dan jumlah penduduknya. Selamat, Anda telah menyelesaikan tugas ini!

Masalah yang Mungkin Muncul

Saat melakukan scraping, tidak semuanya selalu berjalan seperti yang kita harapkan. Berikut beberapa masalah umum: 

  1. 403 Client Error: Beberapa situs web memblokir request yang tidak tampak berasal dari browser sungguhan. Selalu sertakan header seperti User-Agent, terutama saat Anda menggunakan proxy.
  2. IP Diblokir atau Rate Limiting:  Request yang berulang biasanya mengungkap IP Anda, dan situs web dapat menolak akses atau menampilkan tugas verifikasi. Gunakan proxy residential (cepat dan andal, dari perangkat rumah sungguhan) atau proxy mobile (dinamis dan sulit dideteksi, dari operator seluler) untuk mengurangi gangguan verifikasi.
  3. Timeout atau Respons Lambat: Situs web atau koneksi Anda mungkin lambat sehingga request gagal. Tambahkan time.sleep() di antara request dan terapkan logika retry.
  4. CSS Selector Rusak: Situs web sering mengubah layout-nya, sehingga selector yang Anda simpan mungkin berhenti berfungsi. Periksa kembali elemen di browser dan perbarui selector dalam script Anda.
  5. Data Berantakan: HTML mungkin berisi simbol tambahan, nilai kosong, atau format yang tidak terduga. Bersihkan data di Python sebelum menyimpannya ke CSV, misalnya hapus karakter khusus atau spasi di awal dan akhir teks.

Apakah Ada Masa Depan untuk Web Scraping Berbantuan AI?

Jawaban sederhananya: ya. Alat AI seperti ChatGPT tidak menggantikan developer, melainkan memperkuat kemampuan mereka. Alat semacam itu menangani tugas coding berulang, menghasilkan script scraping dengan cepat, dan menyarankan solusi untuk kesalahan umum. Scraping berbantuan AI akan membantu profesional bekerja lebih cepat, tetap efisien, dan berfokus pada analisis tingkat lanjut alih-alih coding manual. Namun, menjaga keseimbangan tetap penting.

Tentu saja, bahkan dengan AI, penting untuk melakukan scraping secara bertanggung jawab. Gunakan proxy yang andal, patuhi rate limit, dan ikuti ketentuan layanan situs web demi praktik scraping yang etis.

 

*Tutorial ini ditujukan semata-mata untuk tujuan pendidikan. Tutorial ini mendemonstrasikan teknik web scraping. Tutorial ini tidak dimaksudkan untuk mendorong atau mengajari siapa pun melakukan scraping situs web yang melanggar ketentuan layanan atau hukum yang berlaku. Selalu pastikan aktivitas scraping Anda etis, legal, dan menghormati aturan situs web.

Share article: