मैं एक क्लाइंट के लिए एक वेबसाइट चलाता हूं, जहां वे सूचनाओं का एक बड़ा डेटाबेस प्रदर्शित करते हैं, जिसे उन्होंने वर्षों से सही और धीरे-धीरे इकट्ठा किया है। वे विभिन्न स्थानों में वेब पर अपना डेटा पा रहे हैं। पृष्ठ पर अपने साइट पेज के माध्यम से जा रहे एक खुरचनी के कारण होने की संभावना से अधिक और अपने स्वयं के डेटाबेस में आवश्यक जानकारी निकालने के कारण। और यदि आप सोच रहे हैं, तो उन्हें पता है कि यह उनकी साइट पर प्रत्येक श्रेणी में डेटा के एक ही लगाए गए टुकड़े के कारण है।
मैंने पिछले कुछ दिनों में इस पर बहुत सारे शोध किए हैं, और मैं आपको बता सकता हूं कि कोई सटीक कैच-ऑल समाधान नहीं है। मैं कई चीजों को मिल गया है, हालांकि यह उनके लिए थोड़ा कठिन पूरा करने के लिए। यह वही है जो मैंने क्लाइंट के लिए लागू किया है।
अजाक्सिफाईड पृष्ठांकित डेटा
यदि आपके पास बहुत से पृष्ठांकित डेटा हैं, और आप अपने URL के अंत में एक भिन्न संख्या को जोड़कर अपने डेटा को पृष्ठांकित कर रहे हैं, अर्थात http://www.domain.com/category/programming/2 - फिर आप बना रहे हैं क्रॉलर की नौकरी जो बहुत आसान है। पहली समस्या है, आसानी से पहचाने जाने वाले पैटर्न में इसकी, इसलिए इन पृष्ठों पर स्क्रैपर को ढीला करना पाई के रूप में आसान है। दूसरी समस्या, श्रेणी के बाद के पन्नों के URL की परवाह किए बिना, संभावना है कि इससे अधिक समय के लिए उनके लिए एक अगला और पिछला लिंक होगा।
पृष्ठ पुनः लोड किए बिना जावास्क्रिप्ट के माध्यम से पृष्ठांकित डेटा को लोड करके, यह काफी अधिक स्क्रैपर्स के लिए नौकरी को जटिल करता है। Google ने अभी हाल ही में पेज पर जावास्क्रिप्ट को पार्स करना शुरू किया। इस तरह से डेटा को फिर से लोड करने के लिए थोड़ा नुकसान है। आप Google को अनुक्रमणिका के लिए कुछ कम पृष्ठ प्रदान करते हैं, लेकिन, तकनीकी रूप से, पृष्ठबद्ध डेटा सभी को रूट श्रेणी के पृष्ठ पर इंगित किया जा सकता है, वैसे भी विहितकरण के माध्यम से। डेटा के अपने पेजेस को अजाक्सिफाई करें।
टेम्पलेट आउटपुट रैंडमाइज़ करें
विशेष रूप से आपके डेटा के लिए स्क्रैपर्स को अक्सर थोड़ा अनुकूलित किया जाएगा। वे शीर्षक के लिए एक निश्चित डिव आईडी या कक्षा में लेट जाएंगे, आपके विवरण के लिए हर पंक्ति में तीसरी सेल, आदि। अधिकांश स्क्रैपर्स के लिए आसानी से पहचाने जाने वाला पैटर्न है जो एक ही टेबल से आने वाले अधिकांश डेटा के साथ काम करता है, उसी टेम्पलेट द्वारा प्रदर्शित किया जाता है। अपनी div id और class के नाम रैंडम करें, 0 टेबल पर यादृच्छिक के साथ खाली टेबल कॉलम डालें। एक पृष्ठ पर एक तालिका में, स्टाइल वाले divs में और दूसरे टेम्पलेट पर एक संयोजन में अपना डेटा दिखाएं। आपके डेटा को अनुमानित रूप से प्रस्तुत करके, यह अनुमानित और सटीक रूप से स्क्रैप किया जा सकता है।
शहद का बर्तन
यह अपनी सादगी में बहुत साफ है। साइट स्क्रैपिंग को रोकने के बारे में कई पृष्ठों पर मैं इस विधि पर आया हूं।
- अपने सर्वर पर एक नई फ़ाइल बनाएँ जिसे gotcha.html कहा जाता है।
- अपनी robots.txt फ़ाइल में, निम्नलिखित जोड़ें:
उपभोक्ता अभिकर्ता: *
अस्वीकार करें: /gotcha.html
यह सभी रोबोटों और मकड़ियों को बताता है कि आपकी साइट को फाइल गोचैको डॉट इन इंडेक्स न करें। कोई भी सामान्य वेब क्रॉलर आपके robots.txt फ़ाइल की इच्छाओं का सम्मान करेगा और उस फ़ाइल का उपयोग नहीं करेगा। यानी, Google और बिंग। आप वास्तव में इस कदम को लागू करना चाहते हैं, और अगले चरण पर जाने से 24 घंटे पहले प्रतीक्षा कर सकते हैं। यह सुनिश्चित करेगा कि जब आप अपने robots.txt फ़ाइल को अपडेट करते हैं तो यह क्रॉलर गलती से आपके द्वारा अवरुद्ध नहीं किया जाता है क्योंकि यह पहले से ही मध्य-क्रॉल था। - अपनी वेबसाइट पर कहीं पर gotcha.html का लिंक रखें। कोई फर्क नहीं पड़ता मैं पाद लेख में सलाह दूंगा, हालांकि, सुनिश्चित करें कि यह लिंक सीएसएस में दिखाई नहीं दे रहा है, प्रदर्शन: कोई नहीं;
- अब, इस पृष्ठ पर गए पेर के आईपी / सामान्य जानकारी को लॉग इन करें और उन्हें ब्लॉक करें। वैकल्पिक रूप से, आप उन्हें गलत और कचरा डेटा प्रदान करने के लिए स्क्रिप्ट के साथ आ सकते हैं। या हो सकता है कि उनसे आपको एक अच्छा व्यक्तिगत संदेश मिले।
नियमित वेब दर्शक लिंक नहीं देख पाएंगे, इसलिए यह गलती से क्लिक नहीं होगा। प्रतिष्ठित क्रॉलर (उदाहरण के लिए Google), आपके robots.txt की इच्छाओं का सम्मान करेंगे और फ़ाइल पर नहीं जाएंगे। तो, इस पृष्ठ पर केवल कंप्यूटर जो ठोकर खाते हैं, वे दुर्भावनापूर्ण इरादे वाले होते हैं, या कोई व्यक्ति आपके स्रोत कोड को देखता है और बेतरतीब ढंग से चारों ओर क्लिक करता है (और ऐसा होने पर ओह अच्छी तरह से)।
ऐसे कुछ कारण हैं जो हमेशा काम नहीं कर सकते हैं। सबसे पहले, बहुत सारे स्क्रैपर्स सामान्य वेब क्रॉलर की तरह कार्य नहीं करते हैं, और आपकी साइट के प्रत्येक पृष्ठ के प्रत्येक लिंक का अनुसरण करके डेटा की खोज नहीं करते हैं। स्क्रैपर्स अक्सर कुछ पृष्ठों पर तय करने और केवल कुछ संरचनाओं का पालन करने के लिए बनाए जाते हैं। उदाहरण के लिए, एक श्रेणी पृष्ठ पर एक खुरचनी शुरू की जा सकती है, और फिर स्लग में शब्द / डेटा के साथ केवल URL पर जाने के लिए कहा जाता है। दूसरा, यदि कोई अन्य के समान नेटवर्क पर अपना स्क्रैपर चला रहा है, और एक साझा आईपी का उपयोग किया जा रहा है, तो आप पूरे नेटवर्क पर प्रतिबंध लगा देंगे। समस्या के लिए आपको वास्तव में एक बहुत ही लोकप्रिय वेबसाइट होना चाहिए।
मक्खी पर छवियों के लिए डेटा लिखें
डेटा का एक छोटा क्षेत्र ढूंढें, जरूरी नहीं कि पाठ के लंबे तार हों क्योंकि इससे पृष्ठ को थोड़ा और अधिक कठिन बनाया जा सकता है। एक छवि के अंदर इस डेटा को आउटपुट करना, मुझे काफी विश्वास है कि बस हर प्रोग्रामिंग भाषा के बारे में एक छवि को गतिशील रूप से (php, Imagettftext में) टेक्स्ट लिखने के तरीके हैं। यह संभवतः संख्यात्मक मूल्यों के साथ सबसे प्रभावी है क्योंकि संख्याएं बहुत अधिक महत्वहीन एसईओ लाभ प्रदान करती हैं।
विकल्प
यह इस परियोजना के लिए एक विकल्प नहीं था। पेजव्यू की एक निश्चित मात्रा के बाद एक लॉगिन की आवश्यकता होती है, या बिना लॉग इन किए डेटा की सीमित मात्रा को प्रदर्शित करना। यानी, यदि आपके पास 10 कॉलम हैं, तो केवल 5 से गैर-लॉग इन उपयोगकर्ताओं को प्रदर्शित करें।
यह गलती मत करो
बॉट के उपयोगकर्ता-एजेंट के आधार पर किसी प्रकार के समाधान के साथ आने की कोशिश करने से परेशान न हों। यह जानकारी आसानी से एक खुरचनी द्वारा खराब हो सकती है जो जानता है कि वे क्या कर रहे हैं। उदाहरण के लिए google bot आसानी से अनुकरण किया जा सकता है। आप संभावना से अधिक Google पर प्रतिबंध नहीं लगाना चाहते हैं।






