- Tulisan yang merangkum pengalaman mengembangkan web scraper berbantuan AI menggunakan fitur output terstruktur baru dari OpenAI
Meminta GPT-4o melakukan scraping data
- Eksperimen pertama adalah meminta GPT-4o mengekstrak data dari string HTML
- Output terstruktur diatur menggunakan model Pydantic
from typing import List, Dict class ParsedColumn(BaseModel): name: str values: List[str] class ParsedTable(BaseModel): name: str columns: List[ParsedColumn] - Prompt sistemnya adalah sebagai berikut:
Anda adalah pakar web scraping. Anda menerima isi tabel HTML dan harus mengekstrak data terstruktur
Mengurai tabel yang kompleks
- Setelah bereksperimen dengan tabel sederhana, penulis menguji tabel yang kompleks seperti prakiraan cuaca 10 hari dari Weather.com
- GPT-4o menambahkan kolom
Day/Nightdan mengurai data dengan akurat - Kolom
Conditiontidak terlihat di situs web sehingga sempat diduga sebagai halusinasi, tetapi setelah kode sumber diperiksa ternyata tag tersebut memang ada
Baris gabungan merusak model
- Penulis menguji tabel sederhana dari Wikipedia (Human Development Index), tetapi model gagal karena adanya baris gabungan
- Prompt sistem dicoba untuk dimodifikasi, tetapi tidak efektif
Meminta GPT-4o mengembalikan XPath
- Untuk menurunkan biaya panggilan API OpenAI, penulis meminta model mengembalikan XPath alih-alih data yang sudah diurai
- Namun, model sering mengembalikan XPath yang salah atau tidak mengembalikan data sama sekali
Menggabungkan dua pendekatan
- Penulis mencoba pendekatan yang meminta XPath dengan merujuk pada data yang telah diekstrak terlebih dahulu
- Metode ini memberikan hasil yang lebih baik, tetapi muncul masalah gambar yang diubah menjadi teks
GPT-4o sangat mahal
- Scraping dengan GPT-4o memakan biaya besar
- Penulis menambahkan logika pembersihan untuk menghapus data yang tidak perlu dari string HTML guna menghemat biaya
Kesimpulan dan demo
- Penulis terkesan dengan kualitas ekstraksi data GPT-4o, tetapi kecewa dengan masalah biaya
- Disediakan demo sederhana menggunakan Streamlit
- Masih banyak hal yang bisa diperbaiki melalui eksperimen lebih lanjut
Ringkasan GN⁺
- Tulisan ini mengeksplorasi kemungkinan dan keterbatasan web scraping dengan AI
- Menunjukkan bahwa fitur output terstruktur GPT-4o dapat digunakan untuk mengekstrak data tabel kompleks secara akurat
- Meski ada masalah biaya dan beberapa keterbatasan teknis, potensi alat web scraping berbantuan AI tetap terlihat
- Proyek lain dengan fungsi serupa antara lain BeautifulSoup dan Scrapy
1 komentar
Komentar Hacker News
Berhasil dengan mengubah HTML ke format sederhana (misalnya markdown) lalu mengirimkannya ke LLM
Untuk konten terstruktur (misalnya daftar item, tabel sederhana), LLM tidak diperlukan
Mengejutkan bahwa penulis menyelesaikan 99% pekerjaan tetapi tidak mengunduh dan menguji ollama untuk 1% sisanya
Menggunakan metode mengambil screenshot halaman, memotong bagian yang diperlukan, lalu mengirimkannya ke GPT
OpenAI baru-baru ini mengumumkan Batch API
Memberikan contoh HTML lalu meminta snippet kode beautifulsoup terbukti efektif
Bertanya-tanya apakah ada "html reducer"
Daripada scraping langsung dengan GPT-4o, GPT-4o bisa diminta menulis skrip web scraper sederhana
Di Kadoa sedang mengerjakan tugas web scraping otomatis berbasis AI
Sedang membangun basis data musik klasik
BeautifulSoup(html).textuntuk mengurangi jumlah tokenfrom_htmlmilik Pandas berguna, tetapi tidak semua tabel menggunakan tag<table>