Jika Anda menjalankan parsing marketplace di malam hari, farming akun Facebook Ads selama 8 jam, atau mengotomatisasi posting massal di Instagram — Anda mungkin menghadapi masalah pemutusan sesi. Proxy mengubah IP, browser kehilangan cookies, skrip gagal di jam ketiga. Dalam panduan ini, kita akan membahas cara mengatur sesi yang stabil dan tahan lama untuk tugas yang berjalan dari beberapa jam hingga sehari tanpa henti.
Apa itu manajemen sesi dan mengapa itu penting
Manajemen sesi adalah pengelolaan status koneksi antara alat Anda (browser, skrip, bot) dan layanan target selama waktu yang lama. Untuk tugas pendek — parsing 100 produk dalam 5 menit — ini tidak kritis. Namun, jika tugas berlangsung selama beberapa jam, penting untuk menjaga:
- IP address yang sama — agar situs tidak mencurigai penggantian perangkat
- Cookies dan localStorage — untuk otorisasi dan pelacakan tindakan
- Fingerprint browser — sekumpulan karakteristik perangkat (User-Agent, resolusi layar, WebGL)
- Status skrip — halaman mana yang telah diproses, di mana berhenti saat terjadi kesalahan
Jika salah satu parameter berubah selama proses — situs dapat memblokir akun, menghentikan parsing captcha, atau mereset sesi otorisasi.
Tugas jangka panjang yang umum: farming akun Facebook Ads (6-12 jam pemanasan), parsing semua produk kategori di Wildberries (3-8 jam), posting massal di 50 akun Instagram (4-10 jam dengan jeda), pemantauan harga pesaing 24/7.
Masalah umum saat sesi panjang
Mari kita bahas apa yang paling sering merusak sesi jangka panjang dan menyebabkan penghentian tugas:
1. Rotasi IP address proxy
Banyak layanan proxy secara default mengubah IP setiap 5-15 menit. Untuk parsing tanpa otorisasi, ini normal, tetapi jika Anda sudah login ke akun Facebook Ads — perubahan IP dari Moskow ke St. Petersburg di tengah sesi akan menimbulkan kecurigaan. Platform akan meminta konfirmasi login, mengirimkan kode ke ponsel, atau bahkan memblokir akun karena aktivitas mencurigakan.
Solusi: gunakan sesi lengket (sticky sessions) — mode di mana proxy memberikan IP yang sama selama 10 menit, 1 jam, atau 24 jam. Lebih lanjut tentang ini di bagian di bawah.
2. Timeout koneksi di sisi proxy
Beberapa penyedia proxy memutuskan koneksi jika tidak ada aktivitas selama 10-30 menit. Jika skrip Anda melakukan jeda antara tindakan (misalnya, meniru manusia — 5 menit membaca produk, kemudian beralih ke yang berikutnya), proxy dapat menutup koneksi. Saat mencoba melanjutkan, skrip akan mendapatkan kesalahan dan gagal.
Solusi: atur permintaan keep-alive (ping proxy setiap 2-3 menit) atau pilih penyedia tanpa timeout yang ketat. Proxy residensial dan seluler biasanya mempertahankan koneksi lebih lama dibandingkan dengan data center.
3. Perubahan fingerprint browser
Jika Anda memulai ulang browser anti-deteksi atau skrip membuat instance browser baru — fingerprint berubah. Bahkan dengan IP yang sama, situs akan melihat bahwa User-Agent, resolusi layar, daftar font, atau canvas fingerprint berbeda dari sesi sebelumnya. Ini memicu sistem anti-fraud.
Solusi: simpan profil browser (di Dolphin Anty, AdsPower, Multilogin ini dilakukan secara otomatis) dan jangan buat yang baru setiap kali memulai. Jika menggunakan Selenium atau Puppeteer — simpan User Data Directory dengan cookies dan pengaturan.
4. Kehilangan status skrip saat terjadi kesalahan
Skrip telah melakukan parsing selama 6 jam, memproses 8000 produk dari 10000, dan gagal karena kesalahan jaringan. Jika tidak menyimpan kemajuan — Anda harus memulai dari awal. Ini sangat kritis untuk tugas yang berlangsung 12+ jam.
Solusi: simpan hasil sementara ke database atau file setiap N iterasi (misalnya, setiap 100 produk). Saat skrip di-restart, ia akan melanjutkan dari posisi terakhir yang disimpan.
Proxy mana yang cocok untuk tugas jangka panjang
Tidak semua jenis proxy sama baiknya untuk sesi panjang. Berikut adalah perbandingan berdasarkan kriteria stabilitas dan masa hidup IP:
| Jenis Proxy | Masa Hidup IP | Stabilitas | Cocok untuk |
|---|---|---|---|
| Data Center | Tidak terbatas (IP statis) | Tinggi, tetapi mudah terdeteksi | Parsing tanpa otorisasi, pemantauan harga |
| Residen | 10 menit — 24 jam (sticky sessions) | Sedang (tergantung penyedia) | Farming akun, parsing dengan otorisasi |
| Seluler | 5-30 menit (pergantian berdasarkan timer operator) | Rendah (sering berganti IP) | Tugas pendek di media sosial, menghindari pemblokiran yang ketat |
| ISP Proxy | Tidak terbatas (IP residensial statis) | Sangat tinggi | Tugas panjang dengan otorisasi, farming akun premium |
Rekomendasi pemilihan:
- Untuk parsing marketplace tanpa otorisasi (Wildberries, Ozon, Yandex.Market) — data center dengan IP statis cocok. Mereka murah, cepat, dan jika situs tidak memblokir data center secara ketat — mereka dapat menangani tugas selama 12+ jam.
- Untuk farming akun Facebook Ads, TikTok Ads, Google Ads — hanya proxy residensial atau ISP dengan sticky sessions selama 24 jam. Proxy seluler tidak cocok karena sering berganti IP.
- Untuk otomatisasi Instagram, TikTok — residensial dengan sticky sessions 1-6 jam. Jika tugasnya pendek (posting di 10 akun dalam satu jam) — proxy seluler juga bisa digunakan.
- Untuk pemantauan 24/7 (melacak harga pesaing, parsing berita) — ISP proxy atau data center, jika situs tidak memblokirnya.
Penting: Proxy seluler TIDAK cocok untuk tugas jangka panjang! IP berubah setiap 5-30 menit berdasarkan timer operator seluler, dan Anda tidak dapat mengendalikannya. Gunakan hanya untuk tugas pendek (pendaftaran akun, posting sekali, menghindari captcha).
Sesi lengket: cara mengunci IP selama 24 jam
Sesi lengket (sticky sessions) adalah mode kerja proxy, di mana Anda mendapatkan IP address yang sama selama waktu yang ditentukan: 10 menit, 1 jam, 6 jam, atau 24 jam. Ini sangat penting untuk tugas dengan otorisasi.
Bagaimana sesi lengket bekerja
Biasanya sesi lengket diimplementasikan melalui session ID dalam URL proxy. Alih-alih format standar:
http://username:password@proxy.example.com:8000
Anda menambahkan parameter sesi:
http://username-session-mysession123:password@proxy.example.com:8000
Sekarang semua permintaan dengan ID mysession123 akan melalui satu IP yang sama, sampai masa hidup sesi berakhir (biasanya 10-30 menit secara default). Jika sesi yang lebih lama diperlukan — penyedia dapat menawarkan parameter waktu:
http://username-session-mysession123-lifetime-1440:password@proxy.example.com:8000
Di mana lifetime-1440 berarti 1440 menit (24 jam).
Pengaturan sesi lengket di layanan populer
Di proxy residensial: sebagian besar penyedia mendukung sesi lengket melalui parameter di username. Periksa format di dokumentasi penyedia Anda. Pilihan umum:
username-session-ABC123— mengunci IP selama waktu default (10-30 menit)username-session-ABC123-sessionduration-60— mengunci selama 60 menitusername-country-us-session-ABC123— IP dari AS dengan penguncian
Di ISP proxy: biasanya IP statis secara default, sesi lengket tidak diperlukan — Anda selalu mendapatkan alamat yang sama, sampai Anda mengganti proxy secara manual.
Di data center: IP statis, tidak perlu pengaturan tambahan.
Contoh penggunaan di browser anti-deteksi
Misalkan Anda farming akun Facebook Ads di Dolphin Anty. Tugasnya — 8 jam pemanasan (berpindah-pindah di situs, menonton video, menyukai). Pengaturannya:
- Buka profil browser di Dolphin Anty
- Pindah ke bagian "Proxy"
- Pilih jenis: HTTP atau SOCKS5
- Masukkan host dan port proxy
- Di kolom "Login" masukkan:
username-session-farm001-sessionduration-480(480 menit = 8 jam) - Masukkan kata sandi
- Klik "Periksa proxy" — pastikan IP terdeteksi
- Simpan profil
Sekarang selama 8 jam semua permintaan dari profil ini akan melalui satu IP. Bahkan jika Anda menutup browser dan membukanya lagi setelah satu jam — dengan menggunakan ID sesi yang sama (farm001) Anda akan mendapatkan IP yang sama.
Tip: Gunakan ID sesi yang jelas, terkait dengan tugas. Misalnya, farm-fb-account-001, parse-wb-electronics. Ini akan memudahkan debugging jika Anda memiliki puluhan tugas paralel.
Pengaturan browser anti-deteksi untuk sesi panjang
Browser anti-deteksi (Dolphin Anty, AdsPower, Multilogin, GoLogin, Octo Browser) dirancang khusus untuk sesi jangka panjang dengan penyimpanan fingerprint. Namun, ada nuansa pengaturan yang kritis untuk tugas yang berlangsung 8+ jam.
1. Penyimpanan profil browser
Profil browser adalah sekumpulan cookies, localStorage, fingerprint (User-Agent, canvas, WebGL, font). Semua browser anti-deteksi secara otomatis menyimpan profil saat ditutup. Yang terpenting — jangan buat profil baru setiap kali memulai tugas!
Pendekatan yang benar:
- Buat profil satu kali untuk tugas tertentu (misalnya, "Farming FB akun #1")
- Atur proxy dengan sesi lengket
- Lakukan peluncuran pertama, login ke akun
- Tutup browser — profil akan disimpan
- Pada peluncuran berikutnya, buka profil YANG SAMA — otorisasi dan fingerprint akan disimpan
Pendekatan yang salah:
- Setiap hari membuat profil baru untuk tugas yang sama
- Menghapus cookies secara manual antara peluncuran
- Merubah fingerprint (User-Agent, resolusi layar) di tengah tugas
2. Pengaturan fingerprint untuk stabilitas
Untuk tugas panjang, pilih fingerprint yang REALISTIS, yang sesuai dengan proxy. Jika proxy dari Rusia (Moskow) — jangan gunakan User-Agent dari MacBook Pro dengan lokal bahasa Inggris. Lebih baik:
- OS: Windows 10 atau 11 (yang paling populer di Rusia)
- Browser: Chrome versi terbaru (otomatis diperbarui di anti-deteksi)
- Resolusi layar: 1920x1080 (yang paling umum)
- Bahasa: ru-RU, zona waktu: Europe/Moscow
- WebRTC: nonaktifkan atau ganti dengan IP proxy (agar IP asli tidak bocor)
Di Dolphin Anty dan AdsPower ada fungsi "Buat fingerprint acak" — ini menghasilkan kombinasi parameter yang masuk akal. Untuk tugas panjang, ini lebih aman daripada mengatur secara manual.
3. Menonaktifkan pembaruan otomatis dan restart
Jika tugas berjalan selama 12 jam, pastikan bahwa:
- Komputer tidak masuk ke mode tidur (matikan di pengaturan daya Windows/macOS)
- Antivirus tidak akan merestart sistem untuk pembaruan (tunda pembaruan)
- Browser anti-deteksi tidak diperbarui secara otomatis di tengah tugas (di pengaturan, nonaktifkan pembaruan otomatis atau atur untuk waktu malam)
4. Menggunakan API browser anti-deteksi untuk otomatisasi
Dolphin Anty, AdsPower, Multilogin menyediakan API untuk mengelola profil dari skrip. Ini memungkinkan:
- Menjalankan profil browser dari skrip Python/Node.js
- Terhubung ke profil melalui Selenium atau Puppeteer
- Melaksanakan tugas panjang
- Menutup profil secara otomatis setelah selesai
Contoh menjalankan profil Dolphin Anty melalui API (Python):
import requests
from selenium import webdriver
# Menjalankan profil melalui API Dolphin Anty
profile_id = "123456"
response = requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/start")
data = response.json()
# Menghubungkan Selenium ke browser yang sedang berjalan
options = webdriver.ChromeOptions()
options.debugger_address = data['automation']['port']
driver = webdriver.Chrome(options=options)
# Melaksanakan tugas
driver.get("https://example.com")
# ... kode parsing atau otomatisasi Anda ...
# Menutup profil
requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/stop")
Pendekatan ini menjamin bahwa fingerprint dan cookies akan disimpan, bahkan jika skrip gagal — saat di-restart, Anda akan terhubung ke profil yang sama.
Otomatisasi dan penyimpanan status
Untuk tugas yang berlangsung 8+ jam, sangat penting untuk menyimpan kemajuan, agar tidak memulai dari awal saat terjadi kesalahan. Mari kita bahas metode untuk berbagai alat.
1. Menyimpan kemajuan di database
Jika Anda parsing 10000 produk dari Wildberries, simpan hasilnya di SQLite, PostgreSQL, atau MongoDB setelah setiap 50-100 produk. Struktur tabel:
CREATE TABLE parsing_progress (
id INTEGER PRIMARY KEY,
url TEXT,
status TEXT, -- 'pending', 'completed', 'error'
data TEXT, -- JSON dengan hasil
created_at TIMESTAMP
);
Saat menjalankan skrip, periksa URL mana yang belum diproses (status = 'pending') dan lanjutkan dari sana. Jika skrip gagal — saat di-restart, ia akan melewatkan produk yang sudah diproses.
2. Menggunakan antrian tugas
Untuk tugas yang kompleks (misalnya, farming 50 akun Facebook Ads secara paralel) gunakan sistem antrian: Celery (Python), Bull (Node.js), RabbitMQ. Prinsipnya:
- Buat daftar tugas (50 akun)
- Setiap tugas — independen (profil browser sendiri, proxy sendiri)
- Pekerja mengambil tugas dari antrian dan melaksanakannya
- Jika pekerja gagal — tugas kembali ke antrian dan diambil oleh pekerja lain
Ini menjamin bahwa tidak ada tugas yang hilang, bahkan jika sebagian proses gagal.
3. Logging dan pemantauan
Untuk tugas yang berlangsung 12+ jam, atur logging yang detail:
- Catat setiap tindakan dalam log (membuka halaman, mengklik tombol, mendapatkan data)
- Simpan tangkapan layar saat terjadi kesalahan (di Selenium:
driver.save_screenshot('error.png')) - Gunakan level log: INFO untuk tindakan biasa, WARNING untuk situasi mencurigakan (captcha, loading lambat), ERROR untuk kegagalan
Contoh pengaturan logging di Python:
import logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('parsing.log'),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# Dalam kode
logger.info(f"Produk {product_id} diproses")
logger.warning(f"Loading halaman lambat: {url}")
logger.error(f"Kesalahan parsing: {error}")
Pemantauan dan pemulihan setelah pemutusan
Bahkan dengan pengaturan proxy dan browser yang benar, sesi dapat terputus: jaringan turun, proxy di-restart, situs mengeluarkan captcha. Penting untuk mendeteksi masalah dengan cepat dan memulihkan pekerjaan.
1. Memeriksa ketersediaan proxy
Sebelum memulai tugas dan secara berkala (setiap 30-60 menit) periksa bahwa proxy berfungsi:
import requests
def check_proxy(proxy_url):
try:
response = requests.get(
'https://api.ipify.org?format=json',
proxies={'http': proxy_url, 'https': proxy_url},
timeout=10
)
if response.status_code == 200:
ip = response.json()['ip']
logger.info(f"Proxy berfungsi, IP: {ip}")
return True
except Exception as e:
logger.error(f"Proxy tidak merespons: {e}")
return False
# Memeriksa sebelum memulai
if not check_proxy(proxy_url):
logger.error("Proxy tidak tersedia, menghentikan tugas")
exit(1)
2. Penanganan captcha dan pemblokiran
Jika situs menunjukkan captcha (Google reCAPTCHA, hCaptcha, Cloudflare Turnstile) — tugas akan berhenti. Pilihan solusi:
- Penyelesaian captcha otomatis: integrasi dengan layanan 2Captcha, Anti-Captcha, CapMonster. Mereka menyelesaikan captcha dalam 10-30 detik, skrip melanjutkan pekerjaan.
- Ganti proxy: jika captcha muncul karena IP yang mencurigakan — beralih ke proxy lain dari kumpulan dan lanjutkan.
- Jeda dan ulang: kadang-kadang captcha muncul karena tindakan yang terlalu cepat. Lakukan jeda 2-5 menit, lalu ulangi permintaan.
3. Restart otomatis saat terjadi kesalahan
Bungkus kode utama dalam try-except dan restart tugas saat terjadi kesalahan:
import time
max_retries = 3
retry_delay = 60 # detik
for attempt in range(max_retries):
try:
# Kode utama tugas
run_parsing()
break # Jika berhasil — keluar dari loop
except Exception as e:
logger.error(f"Kesalahan pada percobaan {attempt + 1}: {e}")
if attempt < max_retries - 1:
logger.info(f"Restart dalam {retry_delay} detik...")
time.sleep(retry_delay)
else:
logger.error("Jumlah percobaan terlampaui, menghentikan")
raise
4. Pemberitahuan tentang masalah
Untuk tugas yang berjalan di malam hari atau pada akhir pekan, atur pemberitahuan saat terjadi kesalahan kritis:
- Bot Telegram: mengirim pesan saat terjadi kesalahan (melalui pustaka python-telegram-bot)
- Email: melalui SMTP (pustaka smtplib di Python)
- SMS: melalui Twilio atau layanan serupa
Contoh mengirim pemberitahuan di Telegram:
import requests
def send_telegram_alert(message):
bot_token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
requests.post(url, data={'chat_id': chat_id, 'text': message})
# Saat terjadi kesalahan
try:
run_parsing()
except Exception as e:
send_telegram_alert(f"⚠️ Kesalahan parsing: {e}")
Skenario penggunaan praktis
Mari kita bahas tugas konkret dan pengaturan manajemen sesi yang optimal untuk masing-masing.
Skenario 1: Farming akun Facebook Ads (8 jam pemanasan)
Tugas: Memanaskan akun Facebook Ads baru sebelum menjalankan iklan. Perlu meniru perilaku pengguna biasa: masuk ke Facebook, membaca feed, menonton video, menyukai, mengklik iklan. Total 8 jam aktivitas dengan jeda.
Pengaturan:
- Proxy: Residensial dengan sesi lengket selama 8-12 jam, negara — sama dengan yang tertera di akun (jika akun AS — proxy dari AS)
- Browser: Dolphin Anty atau AdsPower, buat profil terpisah untuk akun ini
- Fingerprint: Realistis untuk negara (Windows 10, Chrome, resolusi 1920x1080, bahasa en-US untuk AS)
- Otomatisasi: Skrip di Selenium dengan jeda acak (5-15 menit antara tindakan), meniru scrolling dan gerakan mouse
- Penyimpanan kemajuan: Logging semua tindakan ke file, agar saat terjadi kesalahan dapat melanjutkan dari yang terakhir
Risiko: Perubahan IP di tengah sesi — Facebook akan meminta konfirmasi login. Tindakan yang terlalu cepat — akun akan dicurigai.
Skenario 2: Parsing semua produk kategori di Wildberries (6 jam)
Tugas: Mengambil semua produk kategori "Elektronik" di Wildberries (sekitar 50000 produk). Perlu mendapatkan nama, harga, peringkat, jumlah ulasan. Parsing dilakukan tanpa otorisasi.
Pengaturan:
- Proxy: Data center dengan IP statis (Wildberries biasanya tidak memblokir data center secara ketat) atau residensial dengan sesi lengket selama 6+ jam
- Browser: Tidak wajib, bisa menggunakan requests + BeautifulSoup (lebih cepat) atau Selenium (jika situs berbasis JavaScript)
- Penyimpanan kemajuan: Database SQLite, simpan setiap 100 produk. Saat di-restart, lewati yang sudah diproses.
- Penanganan kesalahan: Jika produk tidak dimuat (404, timeout) — lewati dan lanjutkan, catat di log
Risiko: Wildberries dapat menunjukkan captcha jika permintaan terlalu sering. Solusi — tambahkan jeda 1-3 detik antara produk atau gunakan kumpulan proxy dengan rotasi.
Skenario 3: Posting massal di 30 akun Instagram (5 jam)
Tugas: Memposting konten yang sama di 30 akun Instagram klien. Untuk setiap akun — teks dan hashtag yang berbeda. Perlu dilakukan dengan jeda, agar tidak terlihat seperti spam.
Pengaturan:
- Proxy: Residensial dengan sesi lengket selama 1-2 jam, untuk setiap akun — proxy sendiri (agar akun tidak terhubung melalui IP yang sama)
- Browser: Dolphin Anty, buat 30 profil (satu untuk setiap akun), di setiap profil — proxy sendiri
- Otomatisasi: Skrip menjalankan profil secara bergantian, melakukan posting melalui Instagram Web atau API, menutup profil. Jeda antara akun — 10-15 menit.
- Penyimpanan kemajuan: Daftar akun dalam CSV, tandai status (posted/pending/error)
Risiko: Instagram dapat memblokir akun karena tindakan massal. Solusi — tambahkan jeda acak, meniru perilaku manusia (scrolling feed sebelum posting).
Skenario 4: Pemantauan harga pesaing di Ozon 24/7
Tugas: Memantau harga 500 produk pesaing di Ozon setiap jam, mencatat perubahan di database. Tugas ini berjalan terus-menerus.
Pengaturan:
- Proxy: ISP proxy dengan IP statis (tidak pernah berubah) atau data center
- Otomatisasi: Tugas Cron (Linux) atau Task Scheduler (Windows), menjalankan skrip setiap jam
- Penyimpanan data: PostgreSQL atau MySQL, tabel dengan kolom: product_id, price, timestamp
- Penanganan kesalahan: Jika Ozon tidak tersedia (kesalahan 500) — lewati iterasi, catat di log, ulangi setelah satu jam
Risiko: Ozon dapat memblokir IP jika permintaan terlalu sering. Solusi — gunakan kumpulan 3-5 proxy dengan rotasi.
Kesimpulan
Manajemen sesi untuk tugas panjang adalah kombinasi dari pemilihan proxy yang benar, pengaturan browser anti-deteksi, dan otomatisasi yang andal dengan penyimpanan kemajuan. Poin kunci:
- Untuk tugas dengan otorisasi (farming akun, bekerja dengan panel iklan) gunakan proxy residensial atau ISP dengan sesi lengket selama 6-24 jam
- Untuk parsing tanpa otorisasi, data center dengan IP statis cocok — mereka lebih murah dan lebih cepat
- Proxy seluler TIDAK cocok untuk tugas jangka panjang karena sering berganti IP
- Simpan profil browser dan jangan ubah fingerprint di tengah tugas
- Pastikan untuk mencatat kemajuan dan atur restart otomatis saat terjadi kesalahan
- Untuk tugas yang sangat penting, atur pemberitahuan tentang masalah (Telegram, email)
Jika Anda berencana untuk menjalankan tugas selama 8+ jam dengan otorisasi (farming akun, otomatisasi media sosial, bekerja dengan panel iklan), kami merekomendasikan untuk mencoba proxy residensial dengan dukungan sesi lengket — mereka memberikan IP yang stabil selama seluruh sesi dan risiko pemblokiran yang minimal. Untuk parsing marketplace dan pemantauan harga tanpa otorisasi, proxy data center sangat cocok — mereka lebih cepat dan lebih murah dengan stabilitas koneksi yang sama.