Skip to main content
Proquest Downloader — tool Python otomasi unduh jurnal PDF dari ProQuest

Proquest Downloader

Completed
Web Application

Ringkasan Project

Proquest Downloader adalah script Python buatan SASHINDO PROJECT untuk mengotomasi proses unduh PDF jurnal akademik dari ProQuest.com. Tool ini membuka browser Chromium via Playwright, melakukan pencarian berdasarkan kata kunci, lalu mengunduh setiap PDF yang tersedia dari hasil pencarian — lengkap dengan penamaan file otomatis dari judul jurnal.

Project ini dibuat untuk kebutuhan riset internal yang memerlukan koleksi besar PDF jurnal tanpa proses klik manual yang berulang. Repo bersifat private.

Fitur Utama

  • Pencarian otomatis berdasarkan kata kunci yang dimasukkan di terminal
  • Fallback ke mode manual jika ProQuest mengubah struktur halaman pencarian
  • CSS injection (clean_page_nuclear) untuk menonaktifkan semua overlay UI — cookie banner, pendo guide, modal backdrop — sebelum setiap interaksi kritis
  • Navigasi otomatis antar halaman hasil pencarian (konfigurasi MAX_PAGES)
  • Penangkapan tab baru yang dibuka tombol download, lalu unduh PDF via requests dengan cookies sesi browser
  • Penamaan file otomatis dari judul jurnal, dengan sanitasi karakter tidak valid
  • Skip otomatis untuk file yang sudah ada — aman untuk lanjutkan proses yang terputus
  • Delay antar unduhan yang dapat dikonfigurasi untuk menghindari rate limiting

Teknologi

KomponenDetail
BahasaPython 3
Browser AutomationPlaywright (Chromium)
HTTP ClientRequests
Teknik BypassCSS Injection via page.evaluate()
OutputFile PDF lokal di folder downloads/

Alur Kerja

  1. Script membuka browser Chromium dan navigasi ke ProQuest
  2. Playwright mencoba mengisi kotak pencarian otomatis — fallback ke input manual jika gagal
  3. Untuk setiap halaman hasil: ambil daftar .resultItem, klik judul satu per satu
  4. Di halaman detail: lokasi tombol download → tangkap tab baru yang terbuka
  5. Ambil URL dari tab baru, unduh PDF via requests + cookies sesi aktif
  6. Simpan ke folder downloads/ dengan nama dari judul jurnal
  7. Lanjut ke item berikutnya; navigasi ke halaman berikutnya setelah semua item diproses

Catatan Teknis

Script menggunakan sync_playwright dengan browser mode headless=False — mode visual lebih stabil di ProQuest karena beberapa elemen hanya ter-render saat browser punya window aktif. Fungsi clean_page_nuclear() dijalankan sebelum setiap klik kritis menggunakan CSS !important override agar tidak ada layer yang memblokir interaksi Playwright.

Download PDF dilakukan via requests.get() dengan cookies yang diambil dari sesi Playwright — bukan via mekanisme download bawaan Playwright — karena URL PDF biasanya sudah terbuka di tab baru dan bisa langsung di-fetch dengan sesi yang sudah terotentikasi.


Lihat artikel teknis lengkap di blog SASHINDO PROJECT dan panduan setup di dokumentasi Proquest Downloader.