𝗗𝗮𝗿𝗶𝗽𝗮𝗱𝗮 𝗥𝗲𝗴𝗲𝘅 𝗸𝗲𝗽𝗮𝗱𝗮 𝗟𝗟𝗠: 𝗣𝗲𝗿𝗷𝗮𝗹𝗮𝗻𝗮𝗻 𝗦𝗮𝘆𝗮 𝗠𝗲𝗻𝗴𝗲𝗸𝘀𝘁𝗿𝗮𝗸 𝗗𝗮𝘁𝗮 𝗪𝗲𝗯 𝗧𝗶𝗱𝗮𝗸 𝗕𝗲𝗿𝘀𝘁𝗿𝘂𝗸𝘁𝘂𝗿
Saya cuba membina alat perbandingan harga. Ia memerlukan data produk daripada berpuluh-puluh laman e-dagang.
Setiap laman menggunakan struktur HTML yang berbeza. Ada yang menggunakan kelas CSS rawak. Yang lain pula menggunakan JavaScript untuk memuatkan kandungan.
Rancangan pertama saya menggunakan Regex dan BeautifulSoup. Ia berfungsi untuk dua laman. Kemudian, semuanya rosak. Satu laman mengubah susun aturnya. Satu lagi laman mula menggunakan kandungan dinamik. Saya menghabiskan lebih banyak masa membaiki scraper daripada menggunakan data.
Seterusnya, saya cuba menggunakan LLM. Saya menghantar HTML mentah kepada AI dan meminta data. Ini juga gagal. Outputnya tidak konsisten. AI mengalami halusinasi nilai. Kos API saya meningkat kerana HTML menggunakan terlalu banyak token.
Saya menemui jalan tengah. Sekarang saya menggunakan pendekatan hibrid.
Berikut adalah proses saya:
- Praproses HTML. Saya membuang skrip, gaya (styles), dan bar navigasi. Saya hanya mengekalkan teks yang kelihatan. Ini memastikan jumlah token kekal rendah.
- Gunakan mod JSON. Saya menggunakan function calling untuk memaksa LLM mengembalikan data berstruktur.
- Tambah logik cubaan semula (retry logic). Saya mencuba semula sehingga tiga kali jika JSON gagal.
- Cache hasil. Saya menyimpan pengekstrakan yang berjaya mengikut URL untuk mengelakkan kos berulang.
Regex dan BeautifulSoup masih yang terbaik untuk halaman statik yang berstruktur baik. Ia pantas dan percuma.
LLM adalah yang terbaik untuk laman yang tidak teratur atau sentiasa berubah. Ia bukan magis. Anda mesti membersihkan input anda terlebih dahulu untuk menjimatkan wang.
Aliran kerja semasa saya:
• Gunakan parser ringan untuk laman yang mudah. • Gunakan LLM untuk laman yang tidak menentu. • Pantau kos bagi setiap pengekstrakan. • Sahkan output untuk memastikan harga kelihatan realistik.
Perubahan ini membantu saya menambah kedai baharu dalam masa satu jam berbanding satu hari.
Apakah strategi anda untuk data web yang tidak teratur? Adakah anda menggunakan LLM atau kekal dengan scraper tradisional?