اگر شما پارسینگ بازارهای آنلاین را در شب راهاندازی میکنید، حسابهای Facebook Ads را به مدت 8 ساعت فارم میکنید یا اتوماسیون پستهای انبوه در Instagram را انجام میدهید — با مشکل قطع جلسات مواجه شدهاید. پروکسی IP را تغییر میدهد، مرورگر کوکیها را از دست میدهد، اسکریپت در ساعت سوم کار سقوط میکند. در این راهنما بررسی میکنیم که چگونه جلسات پایدار و طولانیمدت را برای وظایفی که از چند ساعت تا یک روز بدون توقف کار میکنند، تنظیم کنیم.
مدیریت جلسه چیست و به چه چیزی نیاز دارد
مدیریت جلسه — مدیریت وضعیت ارتباط بین ابزار شما (مرورگر، اسکریپت، ربات) و سرویس هدف به مدت طولانی است. برای وظایف کوتاه — پارسینگ 100 محصول در 5 دقیقه — این موضوع بحرانی نیست. اما اگر وظیفه چند ساعت طول بکشد، حفظ موارد زیر مهم است:
- یک آدرس IP ثابت — تا سایت مشکوک به تغییر دستگاه نشود
- کوکیها و localStorage — برای احراز هویت و پیگیری فعالیتها
- اثر انگشت مرورگر — مجموعهای از ویژگیهای دستگاه (User-Agent، وضوح صفحه، WebGL)
- وضعیت اسکریپت — کدام صفحات پردازش شدهاند، در کجا در صورت بروز خطا متوقف شدهاند
اگر حداقل یکی از این پارامترها در حین کار تغییر کند — سایت ممکن است حساب را مسدود کند، پارسینگ کپچا را قطع کند یا جلسه احراز هویت را ریست کند.
وظایف رایج طولانیمدت: فارم حسابهای Facebook Ads (6-12 ساعت گرم کردن)، پارسینگ تمام محصولات دستهبندی در Wildberries (3-8 ساعت)، پستگذاری انبوه در 50 حساب Instagram (4-10 ساعت با تأخیر)، نظارت بر قیمتهای رقبا 24/7.
مشکلات رایج در جلسات طولانی
بیایید بررسی کنیم که چه چیزهایی معمولاً جلسات طولانیمدت را خراب میکند و منجر به توقف وظیفه میشود:
1. چرخش آدرس IP پروکسی
بسیاری از خدمات پروکسی به طور پیشفرض هر 5-15 دقیقه IP را تغییر میدهند. برای پارسینگ بدون احراز هویت این موضوع عادی است، اما اگر شما در حساب Facebook Ads وارد شدهاید — تغییر IP از مسکو به سنپترزبورگ در وسط جلسه مشکوک خواهد بود. پلتفرم درخواست تأیید ورود میکند، کدی به تلفن ارسال میکند یا حتی حساب را به دلیل فعالیت مشکوک مسدود میکند.
راهحل: استفاده از جلسات چسبنده (sticky sessions) — حالتی که پروکسی یک IP ثابت را به مدت 10 دقیقه، 1 ساعت یا 24 ساعت ارائه میدهد. در بخش زیر بیشتر در این مورد توضیح خواهیم داد.
2. تایماوت اتصال در سمت پروکسی
برخی از ارائهدهندگان پروکسی اتصال را قطع میکنند اگر 10-30 دقیقه هیچ فعالیتی وجود نداشته باشد. اگر اسکریپت شما بین اقدامات وقفهای داشته باشد (به عنوان مثال، شبیهسازی انسان — 5 دقیقه محصول را میخواند، سپس به محصول بعدی میرود)، پروکسی ممکن است اتصال را ببندد. در تلاش برای ادامه کار، اسکریپت خطا دریافت میکند و سقوط میکند.
راهحل: تنظیم درخواستهای keep-alive (پینگ پروکسی هر 2-3 دقیقه) یا انتخاب ارائهدهنده بدون تایماوتهای سخت. پروکسیهای مسکونی و موبایل معمولاً اتصال را بیشتر از مراکز داده نگه میدارند.
3. تغییر اثر انگشت مرورگر
اگر شما مرورگر ضد شناسایی را مجدداً راهاندازی کنید یا اسکریپت یک نمونه جدید از مرورگر ایجاد کند — اثر انگشت تغییر میکند. حتی با همان IP، سایت خواهد دید که User-Agent، وضوح صفحه، لیست فونتها یا اثر انگشت canvas با جلسه قبلی متفاوت است. این موضوع سیستمهای ضد تقلب را تحریک میکند.
راهحل: حفظ پروفایل مرورگر (در Dolphin Anty، AdsPower، Multilogin این به صورت خودکار انجام میشود) و در هر بار راهاندازی جدید ایجاد نکنید. اگر از Selenium یا Puppeteer استفاده میکنید — User Data Directory را با کوکیها و تنظیمات ذخیره کنید.
4. از دست دادن وضعیت اسکریپت در صورت بروز خطا
اسکریپت به مدت 6 ساعت پارس کرده، 8000 محصول از 10000 را پردازش کرده و به دلیل خطای شبکه سقوط کرده است. اگر پیشرفت ذخیره نشود — باید از ابتدا شروع کنید. این موضوع به ویژه برای وظایف 12+ ساعته بحرانی است.
راهحل: ذخیره نتایج میانی در پایگاه داده یا فایل هر N تکرار (به عنوان مثال، هر 100 محصول). در هنگام راهاندازی مجدد، اسکریپت از آخرین موقعیت ذخیره شده ادامه خواهد داد.
کدام پروکسیها برای وظایف طولانیمدت مناسب هستند
همه نوع پروکسی برای جلسات طولانیمدت مناسب نیستند. در اینجا مقایسهای بر اساس معیارهای ثبات و زمان عمر IP ارائه شده است:
| نوع پروکسی | زمان عمر IP | ثبات | مناسب برای |
|---|---|---|---|
| مراکز داده | نامحدود (IP ثابت) | بالا، اما به راحتی شناسایی میشوند | پارسینگ بدون احراز هویت، نظارت بر قیمتها |
| مسکونی | 10 دقیقه — 24 ساعت (جلسات چسبنده) | متوسط (بسته به ارائهدهنده) | فارم حسابها، پارسینگ با احراز هویت |
| موبایل | 5-30 دقیقه (تغییر بر اساس زمانبندی اپراتور) | پایین (تغییرات مکرر IP) | وظایف کوتاه در شبکههای اجتماعی، دور زدن مسدودیتهای سخت |
| پروکسی ISP | نامحدود (IP مسکونی ثابت) | بسیار بالا | وظایف طولانی با احراز هویت، فارم حسابهای پریمیوم |
توصیهها برای انتخاب:
- برای پارسینگ بازارهای آنلاین بدون احراز هویت (Wildberries، Ozon، یاندکس مارکت) — مراکز داده با IP ثابت مناسب هستند. آنها ارزان، سریع هستند و اگر سایت مراکز داده را به شدت مسدود نکند — میتوانند وظیفه را برای 12+ ساعت انجام دهند.
- برای فارم حسابهای Facebook Ads، TikTok Ads، Google Ads — فقط پروکسیهای مسکونی یا ISP با جلسات چسبنده به مدت 24 ساعت. پروکسیهای موبایل به دلیل تغییرات مکرر IP مناسب نیستند.
- برای اتوماسیون Instagram، TikTok — پروکسیهای مسکونی با جلسات چسبنده 1-6 ساعت. اگر وظیفه کوتاه باشد (پستگذاری در 10 حساب در یک ساعت) — پروکسیهای موبایل نیز مناسب هستند.
- برای نظارت 24/7 (پیگیری قیمتهای رقبا، پارسینگ اخبار) — پروکسیهای ISP یا مراکز داده، اگر سایت آنها را مسدود نکند.
مهم: پروکسیهای موبایل برای وظایف طولانیمدت مناسب نیستند! IP هر 5-30 دقیقه بر اساس زمانبندی اپراتور موبایل تغییر میکند و شما نمیتوانید آن را کنترل کنید. فقط از آنها برای وظایف کوتاه (ثبتنام حساب، پستگذاری یکباره، دور زدن کپچا) استفاده کنید.
جلسات چسبنده: چگونه IP را به مدت 24 ساعت ثابت نگه داریم
جلسات چسبنده (sticky sessions) — حالتی از کار پروکسی است که در آن شما یک آدرس IP ثابت را به مدت زمان مشخصی دریافت میکنید: 10 دقیقه، 1 ساعت، 6 ساعت یا 24 ساعت. این موضوع برای وظایف با احراز هویت بحرانی است.
چگونه جلسات چسبنده کار میکنند
معمولاً جلسات چسبنده از طریق شناسه جلسه (session ID) در URL پروکسی پیادهسازی میشوند. به جای فرمت استاندارد:
http://username:password@proxy.example.com:8000
شما پارامتر session را اضافه میکنید:
http://username-session-mysession123:password@proxy.example.com:8000
اکنون تمام درخواستها با شناسه mysession123 از طریق یک IP ثابت خواهد بود تا زمان عمر جلسه به پایان برسد (معمولاً 10-30 دقیقه به طور پیشفرض). اگر به جلسهای طولانیتر نیاز دارید — ارائهدهنده ممکن است پارامتر زمان را پیشنهاد کند:
http://username-session-mysession123-lifetime-1440:password@proxy.example.com:8000
که در آن lifetime-1440 به معنای 1440 دقیقه (24 ساعت) است.
تنظیم جلسات چسبنده در خدمات محبوب
در پروکسیهای مسکونی: بیشتر ارائهدهندگان از جلسات چسبنده از طریق پارامترها در نام کاربری پشتیبانی میکنند. فرمت را در مستندات ارائهدهنده خود بررسی کنید. گزینههای معمول:
username-session-ABC123— IP را به مدت زمان پیشفرض (10-30 دقیقه) ثابت نگه میداردusername-session-ABC123-sessionduration-60— به مدت 60 دقیقه ثابت نگه میداردusername-country-us-session-ABC123— IP از ایالات متحده با ثابت نگهداشتن
در پروکسیهای ISP: معمولاً IP به طور پیشفرض ثابت است، نیازی به جلسات چسبنده نیست — شما همیشه یک آدرس یکسان دریافت میکنید، تا زمانی که پروکسی را به صورت دستی تغییر ندهید.
در مراکز داده: IP ثابت است، نیازی به تنظیمات اضافی نیست.
مثال استفاده در مرورگر ضد شناسایی
فرض کنید شما حساب Facebook Ads را در Dolphin Anty فارم میکنید. وظیفه — 8 ساعت گرم کردن (انتقال به سایتها، تماشای ویدیو، لایک کردن). تنظیمات:
- پروفایل مرورگر را در Dolphin Anty باز کنید
- به بخش "پروکسی" بروید
- نوع را انتخاب کنید: HTTP یا SOCKS5
- هاست و پورت پروکسی را وارد کنید
- در فیلد "نام کاربری" وارد کنید:
username-session-farm001-sessionduration-480(480 دقیقه = 8 ساعت) - رمز عبور را وارد کنید
- بر روی "بررسی پروکسی" کلیک کنید — اطمینان حاصل کنید که IP شناسایی میشود
- پروفایل را ذخیره کنید
اکنون به مدت 8 ساعت تمام درخواستها از این پروفایل از طریق یک IP ثابت خواهد بود. حتی اگر مرورگر را ببندید و یک ساعت بعد باز کنید — با استفاده از همان شناسه جلسه (farm001) همان IP را دریافت خواهید کرد.
نکته: از شناسههای جلسه واضح استفاده کنید که با وظیفه مرتبط باشد. به عنوان مثال، farm-fb-account-001، parse-wb-electronics. این کار اشکالزدایی را آسانتر میکند، اگر شما دهها وظیفه موازی داشته باشید.
تنظیم مرورگرهای ضد شناسایی برای جلسات طولانی
مرورگرهای ضد شناسایی (Dolphin Anty، AdsPower، Multilogin، GoLogin، Octo Browser) به طور خاص برای جلسات طولانیمدت با حفظ اثر انگشت طراحی شدهاند. اما نکات تنظیمی وجود دارد که برای وظایف 8+ ساعته بحرانی است.
1. حفظ پروفایل مرورگر
پروفایل مرورگر — مجموعهای از کوکیها، localStorage، اثر انگشت (User-Agent، canvas، WebGL، فونتها) است. تمام مرورگرهای ضد شناسایی به طور خودکار پروفایلها را هنگام بسته شدن ذخیره میکنند. مهم است که در هر بار راهاندازی وظیفه جدید پروفایل جدیدی ایجاد نکنید!
رویکرد صحیح:
- یک بار برای وظیفه خاصی پروفایل ایجاد کنید (به عنوان مثال، "فارم FB حساب #1")
- پروکسی را با جلسه چسبنده تنظیم کنید
- اولین بار را اجرا کنید، وارد حساب شوید
- مرورگر را ببندید — پروفایل ذخیره میشود
- در بار بعدی، همان پروفایل را باز کنید — احراز هویت و اثر انگشت حفظ میشود
رویکرد نادرست:
- هر روز پروفایل جدیدی برای همان وظیفه ایجاد کنید
- کوکیها را به صورت دستی بین اجراها حذف کنید
- اثر انگشت (User-Agent، وضوح صفحه) را در وسط وظیفه تغییر دهید
2. تنظیم اثر انگشت برای ثبات
برای وظایف طولانیمدت، اثر انگشت واقعی را انتخاب کنید که با پروکسی مطابقت داشته باشد. اگر پروکسی از روسیه (مسکو) است — User-Agent از MacBook Pro با زبان انگلیسی قرار ندهید. بهتر است:
- سیستم عامل: Windows 10 یا 11 (محبوبترین در روسیه)
- مرورگر: Chrome آخرین نسخه (به طور خودکار در ضد شناسایی بهروزرسانی میشود)
- وضوح صفحه: 1920x1080 (رایجترین)
- زبان: ru-RU، منطقه زمانی: Europe/Moscow
- WebRTC: غیرفعال کردن یا تغییر به IP پروکسی (تا IP واقعی نشت نکند)
در Dolphin Anty و AdsPower یک ویژگی "ایجاد اثر انگشت تصادفی" وجود دارد — این ویژگی ترکیب معقولی از پارامترها را تولید میکند. برای وظایف طولانیمدت این کار ایمنتر از تنظیم دستی است.
3. غیرفعال کردن بهروزرسانیهای خودکار و راهاندازی مجدد
اگر وظیفه به مدت 12 ساعت کار میکند، اطمینان حاصل کنید که:
- کامپیوتر به حالت خواب نرود (در تنظیمات انرژی Windows/macOS غیرفعال کنید)
- آنتیویروس سیستم را برای بهروزرسانی راهاندازی مجدد نکند (بهروزرسانیها را به تعویق بیندازید)
- مرورگر ضد شناسایی به طور خودکار در وسط وظیفه بهروزرسانی نشود (در تنظیمات بهروزرسانی خودکار را غیرفعال کنید یا آن را به زمان شب تنظیم کنید)
4. استفاده از API مرورگرهای ضد شناسایی برای اتوماسیون
Dolphin Anty، AdsPower، Multilogin API برای مدیریت پروفایلها از اسکریپتها ارائه میدهند. این امکان را فراهم میکند:
- اجرای پروفایل مرورگر از اسکریپت Python/Node.js
- اتصال به آن از طریق Selenium یا Puppeteer
- اجرای وظیفه طولانیمدت
- بستن پروفایل به طور خودکار پس از اتمام
مثال اجرای پروفایل Dolphin Anty از طریق API (Python):
import requests
from selenium import webdriver
# اجرای پروفایل از طریق API Dolphin Anty
profile_id = "123456"
response = requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/start")
data = response.json()
# اتصال Selenium به مرورگر راهاندازی شده
options = webdriver.ChromeOptions()
options.debugger_address = data['automation']['port']
driver = webdriver.Chrome(options=options)
# اجرای وظیفه
driver.get("https://example.com")
# ... کد پارسینگ یا اتوماسیون شما ...
# بستن پروفایل
requests.get(f"http://localhost:3001/v1.0/browser_profiles/{profile_id}/stop")
این رویکرد تضمین میکند که اثر انگشت و کوکیها حفظ میشوند، حتی اگر اسکریپت سقوط کند — در هنگام راهاندازی مجدد به همان پروفایل متصل خواهید شد.
اتوماسیون و حفظ وضعیت
برای وظایف 8+ ساعته حفظ پیشرفت بحرانی است تا در صورت بروز خطا از ابتدا شروع نشود. بیایید روشها را برای ابزارهای مختلف بررسی کنیم.
1. حفظ پیشرفت در پایگاه داده
اگر شما 10000 محصول را از Wildberries پارس میکنید، نتایج را در SQLite، PostgreSQL یا MongoDB پس از هر 50-100 محصول ذخیره کنید. ساختار جدول:
CREATE TABLE parsing_progress (
id INTEGER PRIMARY KEY,
url TEXT,
status TEXT, -- 'pending', 'completed', 'error'
data TEXT, -- JSON با نتایج
created_at TIMESTAMP
);
در هنگام اجرای اسکریپت، بررسی کنید که کدام URL هنوز پردازش نشدهاند (status = 'pending') و از آنها ادامه دهید. اگر اسکریپت سقوط کند — در هنگام راهاندازی مجدد، محصولات پردازش شده را نادیده میگیرد.
2. استفاده از صفهای وظایف
برای وظایف پیچیده (به عنوان مثال، فارم 50 حساب Facebook Ads به طور همزمان) از سیستمهای صف استفاده کنید: Celery (Python)، Bull (Node.js)، RabbitMQ. اصل:
- لیست وظایف را ایجاد کنید (50 حساب)
- هر وظیفه مستقل است (پروفایل مرورگر خود، پروکسی خود)
- کارگران وظایف را از صف میگیرند و اجرا میکنند
- اگر کارگر سقوط کند — وظیفه به صف برمیگردد و توسط کارگر دیگری گرفته میشود
این تضمین میکند که هیچ وظیفهای گم نمیشود، حتی اگر بخشی از فرآیندها سقوط کند.
3. ثبت و نظارت
برای وظایف 12+ ساعته، ثبت دقیق را تنظیم کنید:
- هر اقدام را در لاگ ثبت کنید (صفحه را باز کردید، دکمه را کلیک کردید، دادهها را دریافت کردید)
- در صورت بروز خطا، اسکرینشاتها را ذخیره کنید (در Selenium:
driver.save_screenshot('error.png')) - از سطوح لاگ استفاده کنید: INFO برای اقدامات عادی، WARNING برای وضعیتهای مشکوک (کپچا، بارگذاری کند)، ERROR برای خطاها
مثال تنظیم ثبت در 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__)
# در کد
logger.info(f"محصول {product_id} پردازش شد")
logger.warning(f"بارگذاری کند صفحه: {url}")
logger.error(f"خطای پارسینگ: {error}")
نظارت و بازیابی پس از قطع ارتباط
حتی با تنظیم صحیح پروکسی و مرورگر، جلسه ممکن است قطع شود: شبکه قطع شده، پروکسی راهاندازی مجدد شده، سایت کپچا نمایش داده است. مهم است که مشکل را به سرعت شناسایی کرده و کار را بازیابی کنید.
1. بررسی دسترسی پروکسی
قبل از شروع وظیفه و به طور دورهای (هر 30-60 دقیقه) بررسی کنید که پروکسی کار میکند:
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"پروکسی کار میکند، IP: {ip}")
return True
except Exception as e:
logger.error(f"پروکسی پاسخ نمیدهد: {e}")
return False
# بررسی قبل از شروع
if not check_proxy(proxy_url):
logger.error("پروکسی در دسترس نیست، توقف وظیفه")
exit(1)
2. پردازش کپچا و مسدودیتها
اگر سایت کپچا نمایش داد (Google reCAPTCHA، hCaptcha، Cloudflare Turnstile) — وظیفه متوقف میشود. گزینههای حل:
- حل خودکار کپچا: ادغام با خدمات 2Captcha، Anti-Captcha، CapMonster. آنها کپچا را در 10-30 ثانیه حل میکنند و اسکریپت به کار خود ادامه میدهد.
- تغییر پروکسی: اگر کپچا به دلیل IP مشکوک ظاهر شده — به پروکسی دیگری از مجموعه سوئیچ کنید و ادامه دهید.
- وقفه و تکرار: گاهی اوقات کپچا به دلیل اقدامات بسیار سریع ظاهر میشود. یک وقفه 2-5 دقیقهای ایجاد کنید، سپس درخواست را تکرار کنید.
3. راهاندازی مجدد خودکار در صورت بروز خطا
کد اصلی را در try-except قرار دهید و در صورت بروز خطا وظیفه را مجدداً راهاندازی کنید:
import time
max_retries = 3
retry_delay = 60 # ثانیه
for attempt in range(max_retries):
try:
# کد اصلی وظیفه
run_parsing()
break # اگر موفق بود — از حلقه خارج میشویم
except Exception as e:
logger.error(f"خطا در تلاش {attempt + 1}: {e}")
if attempt < max_retries - 1:
logger.info(f"راهاندازی مجدد پس از {retry_delay} ثانیه...")
time.sleep(retry_delay)
else:
logger.error("تعداد تلاشها بیش از حد مجاز است، توقف")
raise
4. اعلانها در مورد مشکلات
برای وظایفی که در شب یا تعطیلات کار میکنند، اعلانها را در صورت بروز خطاهای بحرانی تنظیم کنید:
- ربات تلگرام: در صورت بروز خطا پیام ارسال میکند (از طریق کتابخانه python-telegram-bot)
- ایمیل: از طریق SMTP (کتابخانه smtplib در Python)
- SMS: از طریق Twilio یا خدمات مشابه
مثال ارسال اعلان در تلگرام:
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})
# در صورت بروز خطا
try:
run_parsing()
except Exception as e:
send_telegram_alert(f"⚠️ خطای پارسینگ: {e}")
سناریوهای عملی استفاده
بیایید وظایف خاص و تنظیمات بهینه مدیریت جلسه را برای هر یک بررسی کنیم.
سناریو 1: فارم حساب Facebook Ads (8 ساعت گرم کردن)
وظیفه: گرم کردن یک حساب جدید Facebook Ads قبل از راهاندازی تبلیغات. نیاز است که رفتار یک کاربر عادی را شبیهسازی کنید: به Facebook وارد شوید، فید را بخوانید، ویدیوها را تماشا کنید، لایک کنید، بر روی تبلیغات کلیک کنید. در مجموع 8 ساعت فعالیت با وقفهها.
تنظیمات:
- پروکسی: مسکونی با جلسه چسبنده به مدت 8-12 ساعت، کشور — همان کشوری که در حساب ذکر شده است (اگر حساب ایالات متحده است — پروکسی از ایالات متحده)
- مرورگر: Dolphin Anty یا AdsPower، ایجاد یک پروفایل جداگانه برای این حساب
- اثر انگشت: واقعی برای کشور (Windows 10، Chrome، وضوح 1920x1080، زبان en-US برای ایالات متحده)
- اتوماسیون: اسکریپت روی Selenium با تأخیرهای تصادفی (5-15 دقیقه بین اقدامات)، شبیهسازی اسکرول و حرکت ماوس
- حفظ پیشرفت: ثبت تمام اقدامات در فایل، تا در صورت بروز خطا از آخرین نقطه ادامه دهید
ریسکها: تغییر IP در وسط جلسه — Facebook درخواست تأیید ورود میکند. اقدامات بسیار سریع — حساب مشکوک میشود.
سناریو 2: پارسینگ تمام محصولات دستهبندی در Wildberries (6 ساعت)
وظیفه: پارس کردن تمام محصولات دسته "الکترونیک" در Wildberries (حدود 50000 محصول). نیاز است که نام، قیمت، رتبه، تعداد نظرات را دریافت کنید. پارسینگ بدون احراز هویت انجام میشود.
تنظیمات:
- پروکسی: مرکز داده با IP ثابت (Wildberries معمولاً مراکز داده را به شدت مسدود نمیکند) یا مسکونی با جلسه چسبنده به مدت 6+ ساعت
- مرورگر: ضروری نیست، میتوانید از requests + BeautifulSoup (سریعتر) یا Selenium (اگر سایت روی JavaScript است) استفاده کنید
- حفظ پیشرفت: پایگاه داده SQLite، ذخیره هر 100 محصول. در هنگام راهاندازی مجدد، محصولات پردازش شده را نادیده بگیرید.
- پردازش خطاها: اگر محصول بارگذاری نشود (404، تایماوت) — آن را نادیده بگیرید و ادامه دهید، در لاگ ثبت کنید
ریسکها: Wildberries ممکن است در صورت درخواستهای بسیار مکرر کپچا نمایش دهد. راهحل — اضافه کردن تأخیر 1-3 ثانیه بین محصولات یا استفاده از مجموعه پروکسی با چرخش.
سناریو 3: پستگذاری انبوه در 30 حساب Instagram (5 ساعت)
وظیفه: قرار دادن یک پست مشابه در 30 حساب Instagram مشتریان. برای هر حساب — متن و هشتگهای خود. نیاز است که با تأخیر انجام شود تا به عنوان اسپم به نظر نرسد.
تنظیمات:
- پروکسی: مسکونی با جلسه چسبنده به مدت 1-2 ساعت، برای هر حساب — پروکسی خود (تا حسابها به دلیل IP مرتبط نشوند)
- مرورگر: Dolphin Anty، ایجاد 30 پروفایل (یک پروفایل برای هر حساب)، در هر کدام — پروکسی خود
- اتوماسیون: اسکریپت پروفایلها را به ترتیب راهاندازی میکند، پستگذاری را از طریق Instagram Web یا API انجام میدهد و پروفایل را میبندد. تأخیر بین حسابها — 10-15 دقیقه.
- حفظ پیشرفت: لیست حسابها در CSV، علامتگذاری وضعیت (posted/pending/error)
ریسکها: Instagram ممکن است به دلیل اقدامات انبوه حساب را مسدود کند. راهحل — اضافه کردن تأخیرهای تصادفی، شبیهسازی رفتار انسانی (اسکرول کردن فید قبل از پستگذاری).
سناریو 4: نظارت بر قیمتهای رقبا در Ozon 24/7
وظیفه: پیگیری قیمت 500 محصول رقبا در Ozon هر ساعت، ثبت تغییرات در پایگاه داده. این وظیفه به طور مداوم کار میکند.
تنظیمات:
- پروکسی: پروکسی ISP با IP ثابت (هرگز تغییر نمیکند) یا مرکز داده
- اتوماسیون: وظیفه Cron (Linux) یا Task Scheduler (Windows)، هر ساعت اسکریپت را راهاندازی میکند
- ذخیره دادهها: PostgreSQL یا MySQL، جدولی با فیلدهای: product_id، price، timestamp
- پردازش خطاها: اگر Ozon در دسترس نباشد (خطای 500) — یک تکرار را نادیده بگیرید، در لاگ ثبت کنید، یک ساعت بعد تکرار کنید
ریسکها: Ozon ممکن است IP را در صورت درخواستهای بسیار مکرر مسدود کند. راهحل — استفاده از مجموعهای از 3-5 پروکسی با چرخش.
نتیجهگیری
مدیریت جلسه برای وظایف طولانیمدت — ترکیبی از انتخاب صحیح پروکسی، تنظیم مرورگر ضد شناسایی و اتوماسیون قابل اعتماد با حفظ پیشرفت است. نکات کلیدی:
- برای وظایف با احراز هویت (فارم حسابها، کار با پنلهای تبلیغاتی) از پروکسیهای مسکونی یا ISP با جلسات چسبنده به مدت 6-24 ساعت استفاده کنید
- برای پارسینگ بدون احراز هویت، مراکز داده با IP ثابت مناسب هستند — آنها ارزانتر و سریعتر هستند
- پروکسیهای موبایل برای وظایف طولانیمدت به دلیل تغییرات مکرر IP مناسب نیستند
- پروفایل مرورگر را ذخیره کنید و در وسط وظیفه اثر انگشت را تغییر ندهید
- به طور حتم پیشرفت را ثبت کنید و راهاندازی مجدد خودکار را در صورت بروز خطا تنظیم کنید
- برای وظایف بحرانی، اعلانها را در مورد مشکلات تنظیم کنید (تلگرام، ایمیل)
اگر شما قصد دارید وظایف 8+ ساعته با احراز هویت (فارم حسابها، اتوماسیون شبکههای اجتماعی، کار با پنلهای تبلیغاتی) را راهاندازی کنید، توصیه میکنیم از پروکسیهای مسکونی با پشتیبانی از جلسات چسبنده استفاده کنید — آنها IP ثابتی را در طول جلسه ارائه میدهند و خطر مسدودیت را به حداقل میرسانند. برای پارسینگ بازارهای آنلاین و نظارت بر قیمتها بدون احراز هویت، پروکسیهای مراکز داده مناسب هستند — آنها سریعتر و ارزانتر هستند در حالی که ثبات اتصال یکسانی دارند.