Objective
Mengembangkan script untuk melakukan web scraping pada website jobstreet.co.id dengan tujuan mengumpulkan informasi lowongan pekerjaan secara otomatis dan terstruktur untuk disimpan ke dalam database.
Responsibilities
Web Scraping Development:
- Mengembangkan dan mengoptimalkan script scraping untuk mengumpulkan data dari jobstreet.co.id menggunakan Python (dengan pustaka seperti
BeautifulSoup
,Scrapy
, atauSelenium
). - Memastikan scraping dapat berjalan stabil dan scalable untuk volume data yang besar.
- Melakukan scraping pada beberapa halaman, termasuk halaman hasil pencarian dan detail lowongan.
- Mengembangkan dan mengoptimalkan script scraping untuk mengumpulkan data dari jobstreet.co.id menggunakan Python (dengan pustaka seperti
Handling Dynamic Content:
- Memahami teknik scraping untuk website yang memuat konten secara dinamis (menggunakan AJAX/JavaScript).
- Menggunakan Selenium atau pustaka lain yang sesuai untuk mengatasi elemen dinamis di situs.
Proxy Management:
- Memanfaatkan IP proxy pool untuk menghindari pemblokiran dari situs.
- Mengelola rotasi proxy secara efektif agar scraping berjalan lancar tanpa terdeteksi.
Data Processing & Storage:
- Membersihkan dan memvalidasi data yang diperoleh dari hasil scraping.
- Menyimpan data ke dalam MongoDB sesuai dengan skema yang sudah disiapkan, termasuk field-field seperti
id_real
,job_title
,min_salary
,max_salary
,location
,company
, dan lainnya. - Melakukan optimasi query untuk memastikan penyimpanan dan pengambilan data dari database berjalan efisien.
Error Handling & Logging:
- Mengimplementasikan error handling dan logging pada setiap tahap scraping untuk memudahkan debugging.
- Memonitor status scraping dan membuat notifikasi jika ada error atau kegagalan scraping.
Technical Requirements
Language & Tools:
- Mahir dalam Python dan pustaka-pustaka scraping (
BeautifulSoup
,Scrapy
,Selenium
). - Familiar dengan database MongoDB untuk menyimpan hasil scraping.
- Pengalaman bekerja dengan API untuk mengambil data (jika dibutuhkan).
- Mahir dalam Python dan pustaka-pustaka scraping (
Web Scraping:
- Pengalaman dalam scraping website yang memiliki struktur HTML kompleks.
- Pengalaman menggunakan Selenium untuk mengatasi situs yang menggunakan JavaScript.
- Pengalaman menggunakan proxy pool untuk menghindari deteksi scraping.
Database:
- Pengalaman dengan MongoDB termasuk desain skema, query optimization, dan data management.
- Mengerti cara mengelola data dalam jumlah besar.
Deployment:
- Pengalaman dalam deploy scraping bot di cloud server seperti AWS, Google Cloud, atau VPS.
- Pengalaman dalam melakukan scheduling scraping tasks secara otomatis menggunakan cron job atau alat serupa.
Preferred Experience:
- Pengalaman scraping data dari situs job aggregator serupa.
- Pengalaman dengan scraping API atau scraping data dari situs yang menggunakan teknik anti-scraping (captcha, limit IP, dll).
Development Flow:
- Initial Setup: Setup lingkungan pengembangan, termasuk pemilihan tools dan framework yang akan digunakan.
- Web Scraping Development: Membuat script scraping dari halaman-halaman utama, seperti halaman pencarian lowongan dan detail lowongan.
- Proxy & Anti-bot Handling: Mengimplementasikan proxy pool dan mengatasi kemungkinan pemblokiran oleh Jobstreet.
- Data Cleaning & Storage: Memastikan bahwa data yang di-scrape sudah terstruktur dengan baik dan disimpan dengan benar ke MongoDB.
- Error Handling & Logging: Mengimplementasikan logging untuk tracking error dan monitoring scraping performance.
- Testing & Deployment: Menguji script scraping dan melakukan deployment ke production environment.
- Maintenance: Melakukan update script jika ada perubahan struktur website atau masalah yang muncul.