Mari kita mulai!
Daftar Isi
Membuat alat pengumpulan data: langkah demi langkah
Untuk proyek ini, saya akan memandu Anda melalui langkah-langkah membuat alat pengumpulan data Walmart Anda sendiri menggunakan ScraperAPI dengan Python dan membantu Anda terus mengumpulkan data produk - termasuk harga, nama, detail, dll.
Kami mencakup seluruh proses, mulai dari mengambil data hingga mengekspornya dalam format JSON hingga menjadwalkan skrip agar berjalan secara otomatis.
Langkah 1: Menyiapkan lingkungan Anda
Sebelum kita mendalami kodenya, Anda perlu menyiapkan lingkungan pengembangan Anda. Pastikan Python terinstal di komputer Anda. Anda juga perlu menginstal: requests
Perpustakaan:
Langkah 2: Daftar ke ScraperAPI
Untuk menggunakan ScraperAPI, Anda harus membuat akun dan mendapatkan kunci API Anda. Kunjungi situs web ScraperAPI dan daftar untuk mendapatkan akun gratis. Setelah Anda memiliki kunci API, simpanlah kunci tersebut karena Anda akan memerlukannya untuk langkah selanjutnya.
Langkah 3: Impor perpustakaan yang diperlukan
Pertama impor perpustakaan yang diperlukan. Ini termasuk requests
untuk membuat permintaan HTTP, json
untuk memproses data JSON dan
datetime
untuk memberikan file yang diekspor dengan stempel waktu.
import requests
import json
from datetime import datetime
Langkah 4: Tentukan kunci API
Pengganti 'YOUR_API_KEY'
dengan kunci ScraperAPI Anda yang sebenarnya. Kunci ini digunakan untuk mengautentikasi permintaan Anda ke ScraperAPI.
# Replace 'YOUR_API_KEY' with your actual ScraperAPI key
API_KEY = 'YOUR_API_KEY'
Langkah 5: Ambil data
Buat fungsi bernama fetch_data()
yang mengambil kueri sebagai argumen dan membuat permintaan payload
di dalam fungsi dengan argumen ini dan kunci API Anda.
Selanjutnya, kirimkan satu get()
Permintaan ke titik akhir Pencarian Walmart ScraperAPI. Respons JSON dikembalikan jika permintaan berhasil (kode status 200). Jika tidak, pesan kesalahan akan dikeluarkan.
Anda dapat menyesuaikan URL untuk menggunakan titik akhir pencarian ScraperAPI.
def fetch_data(query, page):
payload = {
'api_key': API_KEY,
'query': query,
}
# Send a request to ScraperAPI Walmart Search endpoint
response = requests.get('https://api.scraperapi.com/structured/walmart/search', params=payload)
if response.status_code == 200:
return response.json()
else:
print(f'Error: {response.status_code}')
return None
Langkah 6: Ekspor data yang dikumpulkan ke JSON
Buat fungsi bernama export_to_json()
yang mengambil data yang diambil dan nama file sebagai argumen dan json.dump()
Metode untuk mengekspor data ke file JSON dengan nama file yang ditentukan. Pastikan file diindentasi agar mudah dibaca.
def export_to_json(data, filename):
with open(filename, 'w') as f:
json.dump(data, f, indent=4)
print(f'Data exported to {filename}')
Langkah 7: Buat fungsi main()
Buat main()
Fungsi yang menentukan kueri, mengambil data dan mengekspornya ke file JSON. Untuk menghindari penimpaan file, sertakan stempel waktu dalam nama file dan cetak pesan untuk menunjukkan proses pengambilan. Ini berguna bagi kami karena menunjukkan kepada kami apa yang terjadi dengan kode kami.
Anda bisa queries
Daftar untuk menyertakan semua item yang ingin Anda cari:
def main():
queries = ('wireless headphones')
for query in queries:
print(f"Fetching data for query: '{query}'")
data = fetch_data(query)
if data:
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
json_filename = f'data_{timestamp}.json'
export_to_json(data, json_filename)
Langkah 8: Jalankan skrip
Sekarang Anda sudah menyiapkan semuanya, jalankan fungsi utama saat skrip dijalankan.
if __name__ == "__main__":
main()
Langkah 9: Rencanakan pengumpulan data
Saat ini, Anda harus menjalankan alat pengumpulan data ini secara manual setiap kali ingin memperbarui data. Namun, dalam banyak kasus Anda ingin mengumpulkan lebih banyak data dari waktu ke waktu tanpa harus menjalankan skrip secara manual.
Anda dapat menjadwalkan skrip pengumpulan data untuk dijalankan secara berkala agar data Anda selalu terbaru. Salah satu cara untuk melakukannya adalah dengan menggunakan penjadwal tugas seperti cron di Linux atau Penjadwal Tugas di Windows.
Penjadwalan dengan Penjadwal Tugas (Windows)
Untuk mengotomatiskan eksekusi skrip pengumpulan data Anda menggunakan Penjadwal Tugas di Windows, ikuti langkah-langkah mendetail berikut:
-
Buka Penjadwal Tugas:
Tekan
Win + S
untuk membuka bilah pencarian, ketik “Penjadwal Tugas” dan tekan Enter. -
Buat tugas baru:
Di jendela Penjadwal Tugas, klik Buat Tugas di panel tindakan di sebelah kanan.
-
Beri nama dan jelaskan tugas Anda:
Pada tab Umum, masukkan nama untuk tugas Anda (misalnya, “Skrip Pengumpulan Data”) dan deskripsi opsional. Pilih “Jalankan apakah pengguna masuk atau tidak” jika Anda ingin tugas tetap berjalan meskipun Anda tidak masuk.
-
Setel pemicunya:
Buka tab Pemicu dan klik Baru.
Atur pemicu ke jadwal yang diinginkan. Misalnya, untuk menjalankan skrip setiap hari pada tengah malam, pilih Harian, atur waktu mulai ke 00:00, dan konfigurasikan pengaturan pengulangan sesuai kebutuhan.
Klik OK untuk menyimpan pemicunya.
-
Tetapkan tindakan:
Buka tab Tindakan dan klik Baru.
Dari menu tarik-turun Tindakan, pilih Mulai Program.
Klik Telusuri dan telusuri ke lokasi eksekusi Python Anda (mis. C:\Python39\python.exe).
Di bidang Tambahkan Argumen, masukkan jalur ke file skrip Anda (mis.
C:\path\ke\script.py Anda).Klik OK untuk menyimpan tindakan.
-
Simpan dan jalankan tugas:
Klik OK untuk menyimpan tugas.
Jika Anda memilih Jalankan apakah pengguna sedang login atau tidak, Anda akan dimintai kata sandi.
Untuk menguji tugas Anda, klik kanan tugas tersebut di perpustakaan Penjadwal Tugas dan pilih Jalankan.
Dengan mengikuti langkah-langkah ini, Anda dapat mengotomatiskan tugas pengumpulan data dan memastikan bahwa alat pengumpulan data Anda berjalan secara teratur dan tanpa intervensi manual.
ScraperAPI memudahkan untuk melewati tindakan anti-scraping dan mengakses data terstruktur Walmart. Dengan mengintegrasikan ke dalam tugas terjadwal, Anda dapat terus mengumpulkan data terkini untuk analisis, pelaporan, atau integrasi dengan sistem lain. Pendekatan ini tidak hanya menghemat waktu namun juga meningkatkan efisiensi dan keandalan upaya pengumpulan data Anda.