Back to Blog

सत्र प्रबंधन के लिए पार्सिंग और स्वचालन: 12+ घंटे तक सत्र कैसे बनाए रखें

दीर्घकालिक सत्रों को सेटअप करने के लिए पूर्ण मार्गदर्शिका: प्रॉक्सी का चयन, ब्राउज़र कॉन्फ़िगरेशन, कनेक्शन टूटने की समस्याओं का समाधान।

📅February 10, 2026
```html

यदि आप रात भर मार्केटप्लेस की पार्सिंग चला रहे हैं, फेसबुक विज्ञापन खातों की खेती 8 घंटे तक कर रहे हैं या इंस्टाग्राम पर बड़े पैमाने पर पोस्टिंग को स्वचालित कर रहे हैं - तो आप सत्रों के टूटने की समस्या का सामना कर चुके हैं। प्रॉक्सी IP बदलता है, ब्राउज़र कुकीज़ खो देता है, स्क्रिप्ट तीसरे घंटे में गिर जाती है। इस गाइड में, हम देखेंगे कि कैसे स्थिर दीर्घकालिक सत्र सेट करें जो कई घंटों से लेकर एक दिन तक बिना रुके काम करते हैं।

सत्र प्रबंधन क्या है और इसकी आवश्यकता क्यों है

सत्र प्रबंधन - यह आपके उपकरण (ब्राउज़र, स्क्रिप्ट, बॉट) और लक्षित सेवा के बीच लंबे समय तक कनेक्शन की स्थिति का प्रबंधन करना है। छोटे कार्यों के लिए - 5 मिनट में 100 उत्पादों की पार्सिंग - यह महत्वपूर्ण नहीं है। लेकिन यदि कार्य कई घंटों तक चलता है, तो यह महत्वपूर्ण है कि:

  • एक ही IP पता - ताकि साइट उपकरण के प्रतिस्थापन पर संदेह न करे
  • कुकीज़ और लोकलस्टोरेज - प्रमाणीकरण और क्रियाओं को ट्रैक करने के लिए
  • ब्राउज़र का फिंगरप्रिंट - उपकरण की विशेषताओं का सेट (यूजर-एजेंट, स्क्रीन का संकल्प, वेबजीएल)
  • स्क्रिप्ट की स्थिति - कौन सी पृष्ठों को संसाधित किया गया है, विफलता के समय कहां रुके

यदि प्रक्रिया में से कोई भी पैरामीटर बदलता है - तो साइट खाते को ब्लॉक कर सकती है, कैप्चा पार्सिंग को रोक सकती है या प्रमाणीकरण सत्र को रीसेट कर सकती है।

सामान्य दीर्घकालिक कार्य: फेसबुक विज्ञापन खातों की खेती (6-12 घंटे का गर्मी), वाइल्डबेरीज़ पर श्रेणी के सभी उत्पादों की पार्सिंग (3-8 घंटे), 50 इंस्टाग्राम खातों में बड़े पैमाने पर पोस्टिंग (4-10 घंटे देरी के साथ), 24/7 प्रतिस्पर्धियों की कीमतों की निगरानी।

लंबे सत्रों में सामान्य समस्याएँ

आइए देखें कि क्या अक्सर दीर्घकालिक सत्रों को तोड़ता है और कार्य को रोकता है:

1. प्रॉक्सी का IP पता बदलना

कई प्रॉक्सी सेवाएँ डिफ़ॉल्ट रूप से हर 5-15 मिनट में IP बदलती हैं। बिना प्रमाणीकरण के पार्सिंग के लिए यह सामान्य है, लेकिन यदि आप फेसबुक विज्ञापन खाते में लॉगिन कर चुके हैं - तो सत्र के बीच में मास्को से सेंट पीटर्सबर्ग में IP बदलने से संदेह उत्पन्न होगा। प्लेटफ़ॉर्म लॉगिन की पुष्टि करने के लिए कहेगा, फोन पर कोड भेजेगा या संदेहास्पद गतिविधि के लिए खाते को ब्लॉक कर देगा।

समाधान: स्टिकी सत्रों का उपयोग करें - एक मोड जिसमें प्रॉक्सी 10 मिनट, 1 घंटे या 24 घंटे के लिए एक ही IP प्रदान करता है। इसके बारे में नीचे के अनुभाग में अधिक जानकारी है।

2. प्रॉक्सी की ओर से कनेक्शन टाइमआउट

कुछ प्रॉक्सी प्रदाता कनेक्शन को समाप्त कर देते हैं यदि 10-30 मिनट तक कोई गतिविधि नहीं होती है। यदि आपका स्क्रिप्ट क्रियाओं के बीच विराम करता है (उदाहरण के लिए, व्यक्ति का अनुकरण करता है - 5 मिनट तक उत्पाद पढ़ता है, फिर अगले पर जाता है), तो प्रॉक्सी कनेक्शन बंद कर सकता है। जब कार्य को जारी रखने का प्रयास किया जाता है, तो स्क्रिप्ट एक त्रुटि प्राप्त करेगी और गिर जाएगी।

समाधान: कीप-एलाइव अनुरोधों को सेट करें (प्रॉक्सी को हर 2-3 मिनट में पिंग करें) या बिना कठोर टाइमआउट वाले प्रदाता का चयन करें। आवासीय और मोबाइल प्रॉक्सी आमतौर पर डेटा केंद्रों की तुलना में लंबे समय तक कनेक्शन बनाए रखते हैं।

3. ब्राउज़र का फिंगरप्रिंट बदलना

यदि आप एंटी-डिटेक्ट ब्राउज़र को पुनः प्रारंभ करते हैं या स्क्रिप्ट एक नए ब्राउज़र के उदाहरण का निर्माण करती है - तो फिंगरप्रिंट बदल जाता है। एक ही IP के साथ भी, साइट देखेगी कि यूजर-एजेंट, स्क्रीन का संकल्प, फ़ॉन्ट की सूची या कैनवास फिंगरप्रिंट पिछले सत्र से भिन्न हैं। यह एंटी-फ्रॉड सिस्टम को ट्रिगर करता है।

समाधान: ब्राउज़र प्रोफ़ाइल को सहेजें (Dolphin Anty, AdsPower, Multilogin में यह स्वचालित रूप से किया जाता है) और हर बार नए को न बनाएं। यदि आप Selenium या Puppeteer का उपयोग कर रहे हैं - तो कुकीज़ और सेटिंग्स के साथ यूजर डेटा डायरेक्टरी को सहेजें।

4. विफलता के समय स्क्रिप्ट की स्थिति खोना

स्क्रिप्ट 6 घंटे तक पार्सिंग कर रही थी, 10000 में से 8000 उत्पादों को संसाधित किया और नेटवर्क त्रुटि के कारण गिर गई। यदि प्रगति को सहेज नहीं किया गया - तो आपको शून्य से शुरू करना होगा। यह 12+ घंटे के कार्यों के लिए विशेष रूप से महत्वपूर्ण है।

समाधान: हर N पुनरावृत्तियों (उदाहरण के लिए, हर 100 उत्पादों) में मध्यवर्ती परिणामों को डेटाबेस या फ़ाइल में सहेजें। स्क्रिप्ट पुनः प्रारंभ करने पर अंतिम सहेजे गए स्थान से जारी रखेगी।

लंबी अवधि के कार्यों के लिए कौन से प्रॉक्सी उपयुक्त हैं

सभी प्रकार के प्रॉक्सी दीर्घकालिक सत्रों के लिए समान रूप से अच्छे नहीं हैं। यहाँ स्थिरता और IP के जीवनकाल के मानदंडों के अनुसार तुलना है:

प्रॉक्सी का प्रकार IP का जीवनकाल स्थिरता इसके लिए उपयुक्त
डेटा सेंटर असीमित (स्थिर IP) उच्च, लेकिन आसानी से पहचान ली जाती हैं बिना प्रमाणीकरण के पार्सिंग, कीमतों की निगरानी
आवासीय 10 मिनट - 24 घंटे (स्टिकी सत्र) मध्यम (प्रदाता पर निर्भर करता है) खातों की खेती, प्रमाणीकरण के साथ पार्सिंग
मोबाइल 5-30 मिनट (ऑपरेटर के टाइमर द्वारा परिवर्तन) कम (IP के बार-बार परिवर्तन) सोशल मीडिया में छोटे कार्य, कठोर ब्लॉकों को बायपास करना
ISP प्रॉक्सी असीमित (स्थिर आवासीय IP) बहुत उच्च प्रमाणीकरण के साथ दीर्घकालिक कार्य, प्रीमियम खातों की खेती

चुनने के लिए सिफारिशें:

  • बिना प्रमाणीकरण के मार्केटप्लेस की पार्सिंग के लिए (Wildberries, Ozon, Yandex.Market) - स्थिर IP के साथ डेटा सेंटर उपयुक्त हैं। वे सस्ते, तेज़ हैं, और यदि साइट डेटा सेंटर को कठोरता से ब्लॉक नहीं करती है - तो 12+ घंटे के कार्य को संभाल लेंगे।
  • फेसबुक विज्ञापन, टिकटोक विज्ञापन, गूगल विज्ञापन के खातों की खेती के लिए - केवल आवासीय या ISP प्रॉक्सी जो 24 घंटे के लिए स्टिकी सत्र का समर्थन करते हैं। मोबाइल उपयुक्त नहीं हैं क्योंकि IP के बार-बार परिवर्तन के कारण।
  • इंस्टाग्राम, टिकटोक के लिए स्वचालन - 1-6 घंटे के लिए स्टिकी सत्र के साथ आवासीय। यदि कार्य छोटा है (1 घंटे में 10 खातों में पोस्टिंग) - तो मोबाइल भी उपयुक्त हैं।
  • 24/7 निगरानी के लिए (प्रतिस्पर्धियों की कीमतों की निगरानी, समाचारों की पार्सिंग) - ISP प्रॉक्सी या डेटा सेंटर, यदि साइट उन्हें ब्लॉक नहीं करती है।

महत्वपूर्ण: मोबाइल प्रॉक्सी दीर्घकालिक कार्यों के लिए उपयुक्त नहीं हैं! IP हर 5-30 मिनट में मोबाइल ऑपरेटर के टाइमर द्वारा बदलता है, और आप इसे नियंत्रित नहीं कर सकते। उनका उपयोग केवल छोटे कार्यों (खाता पंजीकरण, एक बार की पोस्टिंग, कैप्चा को बायपास करने) के लिए करें।

स्टिकी सत्र: 24 घंटे के लिए IP कैसे स्थिर करें

स्टिकी सत्र (लिपटे सत्र) - यह प्रॉक्सी का एक कार्य मोड है, जिसमें आप एक ही IP पते को निर्धारित समय के लिए प्राप्त करते हैं: 10 मिनट, 1 घंटा, 6 घंटे या 24 घंटे। यह प्रमाणीकरण वाले कार्यों के लिए महत्वपूर्ण है।

स्टिकी सत्र कैसे काम करते हैं

आमतौर पर स्टिकी सत्र प्रॉक्सी के URL में सत्र ID के माध्यम से लागू होते हैं। मानक प्रारूप के बजाय:

http://username:password@proxy.example.com:8000

आप सत्र पैरामीटर जोड़ते हैं:

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 घंटे)।

लोकप्रिय सेवाओं में स्टिकी सत्र सेट करना

आवासीय प्रॉक्सी में: अधिकांश प्रदाता सत्र ID के माध्यम से स्टिकी सत्र का समर्थन करते हैं। अपने प्रदाता के दस्तावेज़ में प्रारूप की पुष्टि करें। सामान्य विकल्प:

  • username-session-ABC123 - डिफ़ॉल्ट समय (10-30 मिनट) के लिए IP को स्थिर करता है
  • username-session-ABC123-sessionduration-60 - 60 मिनट के लिए स्थिर करता है
  • username-country-us-session-ABC123 - स्थिरता के साथ अमेरिका से IP

ISP प्रॉक्सी में: आमतौर पर डिफ़ॉल्ट रूप से IP स्थिर होता है, स्टिकी सत्र की आवश्यकता नहीं होती - जब तक आप मैन्युअल रूप से प्रॉक्सी नहीं बदलते, आप हमेशा एक ही पता प्राप्त करते हैं।

डेटा केंद्र में: IP स्थिर है, कोई अतिरिक्त सेटिंग की आवश्यकता नहीं है।

एंटी-डिटेक्ट ब्राउज़र में उपयोग का उदाहरण

मान लीजिए, आप Dolphin Anty में फेसबुक विज्ञापन खाता खेती कर रहे हैं। कार्य - 8 घंटे की गर्मी (साइटों पर जाना, वीडियो देखना, लाइक करना)। सेटिंग:

  1. Dolphin Anty में ब्राउज़र प्रोफ़ाइल खोलें
  2. "प्रॉक्सी" अनुभाग पर जाएं
  3. प्रकार चुनें: HTTP या SOCKS5
  4. प्रॉक्सी का होस्ट और पोर्ट दर्ज करें
  5. "लॉगिन" फ़ील्ड में दर्ज करें: username-session-farm001-sessionduration-480 (480 मिनट = 8 घंटे)
  6. पासवर्ड दर्ज करें
  7. "प्रॉक्सी की जांच करें" पर क्लिक करें - सुनिश्चित करें कि IP पहचाना गया है
  8. प्रोफ़ाइल सहेजें

अब 8 घंटे के लिए इस प्रोफ़ाइल से सभी अनुरोध एक IP के माध्यम से जाएंगे। भले ही आप ब्राउज़र बंद कर दें और एक घंटे बाद खोलें - यदि आप उसी सत्र ID (farm001) का उपयोग करते हैं, तो आप वही IP प्राप्त करेंगे।

टिप: कार्य से संबंधित स्पष्ट सत्र ID का उपयोग करें। उदाहरण के लिए, farm-fb-account-001, parse-wb-electronics। यदि आपके पास कई समानांतर कार्य हैं, तो यह डिबगिंग को सरल बनाएगा।

दीर्घकालिक सत्रों के लिए एंटी-डिटेक्ट ब्राउज़रों की सेटिंग

एंटी-डिटेक्ट ब्राउज़र (Dolphin Anty, AdsPower, Multilogin, GoLogin, Octo Browser) विशेष रूप से दीर्घकालिक सत्रों के लिए फिंगरप्रिंट को बनाए रखते हुए बनाए गए हैं। लेकिन कुछ सेटिंग्स हैं जो 8+ घंटे के कार्यों के लिए महत्वपूर्ण हैं।

1. ब्राउज़र प्रोफ़ाइल को सहेजना

ब्राउज़र प्रोफ़ाइल - कुकीज़, लोकलस्टोरेज, फिंगरप्रिंट (यूजर-एजेंट, कैनवास, वेबजीएल, फ़ॉन्ट) का एक सेट है। सभी एंटी-डिटेक्ट ब्राउज़र स्वचालित रूप से बंद होने पर प्रोफाइल को सहेजते हैं। मुख्य बात यह है कि हर बार कार्य शुरू करते समय नया प्रोफ़ाइल न बनाएं!

सही दृष्टिकोण:

  • विशिष्ट कार्य के लिए एक बार प्रोफ़ाइल बनाएं (उदाहरण के लिए, "FB खाता खेती #1")
  • स्टिकी सत्र के साथ प्रॉक्सी सेट करें
  • पहला रन करें, खाते में लॉगिन करें
  • ब्राउज़र बंद करें - प्रोफ़ाइल सहेज ली जाएगी
  • अगली बार जब आप चलाएं, तो वही प्रोफ़ाइल खोलें - प्रमाणीकरण और फिंगरप्रिंट सहेजे जाएंगे

गलत दृष्टिकोण:

  • हर दिन उसी कार्य के लिए नया प्रोफ़ाइल बनाना
  • प्रारंभिक रन के बीच कुकीज़ को मैन्युअल रूप से हटाना
  • कार्य के बीच में फिंगरप्रिंट (यूजर-एजेंट, स्क्रीन का संकल्प) बदलना

2. स्थिरता के लिए फिंगरप्रिंट सेट करना

दीर्घकालिक कार्यों के लिए, एक यथार्थवादी फिंगरप्रिंट चुनें जो प्रॉक्सी के अनुरूप हो। यदि प्रॉक्सी रूस (मास्को) से है - तो अंग्रेजी स्थानीयता के साथ MacBook Pro का यूजर-एजेंट न रखें। बेहतर है:

  • OS: 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 के माध्यम से इससे कनेक्ट करना
  • दीर्घकालिक कार्य करना
  • पूर्ण होने पर स्वचालित रूप से प्रोफ़ाइल बंद करना

API के माध्यम से Dolphin Anty प्रोफ़ाइल शुरू करने का उदाहरण (Python):

import requests
from selenium import webdriver

# API के माध्यम से प्रोफ़ाइल शुरू करना
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. डेटाबेस में प्रगति को सहेजना

यदि आप Wildberries से 10000 उत्पादों की पार्सिंग कर रहे हैं, तो हर 50-100 उत्पादों के बाद परिणामों को SQLite, PostgreSQL या MongoDB में सहेजें। तालिका की संरचना:

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 फेसबुक विज्ञापन खातों की समानांतर खेती) कतार प्रणाली का उपयोग करें: 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. समस्याओं के बारे में सूचनाएँ

रात या सप्ताहांत में काम करने वाले कार्यों के लिए, महत्वपूर्ण त्रुटियों पर सूचनाएँ सेट करें:

  • Telegram-बॉट: त्रुटि होने पर संदेश भेजता है (python-telegram-bot पुस्तकालय के माध्यम से)
  • ईमेल: SMTP के माध्यम से (Python में smtplib पुस्तकालय)
  • SMS: Twilio या समान सेवाओं के माध्यम से

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})

# त्रुटि होने पर
try:
    run_parsing()
except Exception as e:
    send_telegram_alert(f"⚠️ पार्सिंग त्रुटि: {e}")

व्यावहारिक उपयोग के मामले

आइए विशिष्ट कार्यों और प्रत्येक के लिए सत्र प्रबंधन के लिए इष्टतम सेटिंग पर चर्चा करें।

परिदृश्य 1: फेसबुक विज्ञापन खाते की खेती (8 घंटे की गर्मी)

कार्य: विज्ञापन शुरू करने से पहले नए फेसबुक विज्ञापन खाते को गर्म करना। सामान्य उपयोगकर्ता के व्यवहार का अनुकरण करना आवश्यक है: फेसबुक पर जाना, फ़ीड पढ़ना, वीडियो देखना, लाइक करना, विज्ञापनों पर जाना। कुल 8 घंटे की गतिविधि के साथ विराम के साथ।

सेटिंग:

  • प्रॉक्सी: 8-12 घंटे के लिए स्टिकी सत्र के साथ आवासीय, देश - वही जो खाते में निर्दिष्ट है (यदि खाता अमेरिका का है - तो अमेरिका से प्रॉक्सी)
  • ब्राउज़र: Dolphin Anty या AdsPower, इस खाते के लिए एक अलग प्रोफ़ाइल बनाएं
  • फिंगरप्रिंट: देश के लिए यथार्थवादी (Windows 10, Chrome, 1920x1080 का संकल्प, अमेरिका के लिए en-US भाषा)
  • स्वचालन: Selenium पर स्क्रिप्ट जिसमें यादृच्छिक देरी (क्रियाओं के बीच 5-15 मिनट), स्क्रॉलिंग और माउस मूवमेंट का अनुकरण होता है
  • प्रगति को सहेजना: सभी क्रियाओं को फ़ाइल में लॉग करें, ताकि विफलता पर अंतिम से जारी रखा जा सके

जोखिम: सत्र के बीच में IP बदलना - फेसबुक लॉगिन की पुष्टि करने के लिए कहेगा। बहुत तेज़ क्रियाएँ - खाता संदेह के तहत आ जाएगा।

परिदृश्य 2: वाइल्डबेरीज़ पर श्रेणी के सभी उत्पादों की पार्सिंग (6 घंटे)

कार्य: वाइल्डबेरीज़ पर "इलेक्ट्रॉनिक्स" श्रेणी के सभी उत्पादों को पार्स करना (लगभग 50000 उत्पाद)। नाम, कीमत, रेटिंग, समीक्षाओं की संख्या प्राप्त करना आवश्यक है। पार्सिंग बिना प्रमाणीकरण के होती है।

सेटिंग:

  • प्रॉक्सी: स्थिर IP के साथ डेटा सेंटर (वाइल्डबेरीज़ आमतौर पर डेटा सेंटर को कठोरता से ब्लॉक नहीं करता) या 6+ घंटे के लिए स्टिकी सत्र के साथ आवासीय
  • ब्राउज़र: आवश्यक नहीं है, आप requests + BeautifulSoup का उपयोग कर सकते हैं (तेज़) या Selenium (यदि साइट JavaScript पर है)
  • प्रगति को सहेजना: SQLite डेटाबेस, हर 100 उत्पादों के बाद सहेजें। पुनः प्रारंभ करने पर पहले से संसाधित उत्पादों को छोड़ें।
  • त्रुटियों को संभालना: यदि उत्पाद लोड नहीं होता (404, टाइमआउट) - छोड़ें और जारी रखें, लॉग में दर्ज करें

जोखिम: वाइल्डबेरीज़ बहुत बार अनुरोध करने पर कैप्चा दिखा सकता है। समाधान - उत्पादों के बीच 1-3 सेकंड की देरी जोड़ें या प्रॉक्सी के पूल का उपयोग करें।

परिदृश्य 3: 30 इंस्टाग्राम खातों में बड़े पैमाने पर पोस्टिंग (5 घंटे)

कार्य: ग्राहकों के 30 इंस्टाग्राम खातों में समान पोस्ट करना। प्रत्येक खाते के लिए - अपना टेक्स्ट और हैशटैग। इसे देरी के साथ करना आवश्यक है, ताकि यह स्पैम की तरह न लगे।

सेटिंग:

  • प्रॉक्सी: 1-2 घंटे के लिए स्टिकी सत्र के साथ आवासीय, प्रत्येक खाते के लिए - अपनी प्रॉक्सी (ताकि खाते IP द्वारा जुड़े न हों)
  • ब्राउज़र: Dolphin Anty, 30 प्रोफाइल बनाएं (प्रत्येक खाते के लिए एक), प्रत्येक में - अपनी प्रॉक्सी
  • स्वचालन: स्क्रिप्ट प्रोफाइल को बारी-बारी से चलाती है, इंस्टाग्राम वेब या API के माध्यम से पोस्टिंग करती है, प्रोफाइल बंद करती है। खातों के बीच की देरी - 10-15 मिनट।
  • प्रगति को सहेजना: CSV में खातों की सूची, स्थिति को चिह्नित करें (posted/pending/error)

जोखिम: इंस्टाग्राम बड़े पैमाने पर क्रियाओं के लिए खाते को ब्लॉक कर सकता है। समाधान - यादृच्छिक देरी जोड़ें, मानव व्यवहार का अनुकरण करें (पोस्टिंग से पहले फ़ीड को स्क्रॉल करना)।

परिदृश्य 4: Ozon पर प्रतिस्पर्धियों की कीमतों की 24/7 निगरानी

कार्य: हर घंटे Ozon पर 500 प्रतिस्पर्धियों के उत्पादों की कीमतों की निगरानी करना, परिवर्तनों को डेटाबेस में दर्ज करना। कार्य निरंतर चलता है।

सेटिंग:

  • प्रॉक्सी: स्थिर IP (कभी नहीं बदलता) के साथ ISP प्रॉक्सी या डेटा सेंटर
  • स्वचालन: क्रॉन कार्य (Linux) या कार्य शेड्यूलर (Windows), हर घंटे स्क्रिप्ट चलाता है
  • डेटा को सहेजना: PostgreSQL या MySQL, तालिका में फ़ील्ड: product_id, price, timestamp
  • त्रुटियों को संभालना: यदि Ozon अनुपलब्ध है (500 त्रुटि) - पुनरावृत्ति छोड़ें, लॉग में दर्ज करें, एक घंटे बाद पुनः प्रयास करें

जोखिम: Ozon बहुत बार अनुरोध करने पर IP को ब्लॉक कर सकता है। समाधान - 3-5 प्रॉक्सी के पूल का उपयोग करें।

निष्कर्ष

दीर्घकालिक कार्यों के लिए सत्र प्रबंधन - यह प्रॉक्सी के सही चयन, एंटी-डिटेक्ट ब्राउज़र की सेटिंग और प्रगति को बनाए रखने के लिए विश्वसनीय स्वचालन का संयोजन है। मुख्य बिंदु:

  • प्रमाणीकरण वाले कार्यों (खातों की खेती, विज्ञापन पैनलों के साथ काम) के लिए 6-24 घंटे के लिए स्टिकी सत्र के साथ आवासीय या ISP प्रॉक्सी का उपयोग करें
  • बिना प्रमाणीकरण के पार्सिंग के लिए स्थिर IP के साथ डेटा सेंटर उपयुक्त हैं - वे सस्ते और तेज़ हैं
  • मोबाइल प्रॉक्सी दीर्घकालिक कार्यों के लिए उपयुक्त नहीं हैं क्योंकि IP बार-बार बदलता है
  • ब्राउज़र प्रोफ़ाइल को सहेजें और कार्य के बीच में फिंगरप्रिंट न बदलें
  • प्रगति को लॉग करना और विफलताओं पर स्वचालित पुनः प्रारंभ सेट करना अनिवार्य है
  • महत्वपूर्ण कार्यों के लिए समस्याओं के बारे में सूचनाएँ सेट करें (Telegram, ईमेल)

यदि आप 8+ घंटे के कार्यों को प्रमाणीकरण के साथ (खातों की खेती, सोशल मीडिया का स्वचालन, विज्ञापन पैनलों के साथ काम) चलाने की योजना बना रहे हैं, तो हम आवासीय प्रॉक्सी का प्रयास करने की सिफारिश करते हैं जो स्टिकी सत्र का समर्थन करते हैं - वे पूरे सत्र के दौरान स्थिर IP और ब्लॉक के न्यूनतम जोखिम सुनिश्चित करते हैं। बिना प्रमाणीकरण के मार्केटप्लेस की पार्सिंग और कीमतों की निगरानी के लिए डेटा सेंटर प्रॉक्सी उपयुक्त हैं - वे समान कनेक्शन स्थिरता पर तेज़ और सस्ते हैं।

```