2012-01-10 11 views
5

मैं क्या है:
- पेज
क्रॉल - पेज के सभी लिंक लाने, उन्हें एक सूची में डालता है
- एक नया क्रॉलर, जो सूची में से प्रत्येक के लिंक
का दौरा शुरू - उन्हें
मुझे पृष्ठ से सभी लिंक डाउनलोड करने के लिए crawler4j कैसे मिल सकता है?

डाउनलोड

एक त्वरित तरीका होना चाहिए, जहां मैं पृष्ठ पर जाने पर सीधे लिंक डाउनलोड कर सकता हूं? धन्यवाद!

उत्तर

6

crawler4j स्वचालित रूप से आपके लिए यह प्रक्रिया करता है। आप पहले एक या अधिक बीज पेज जोड़ते हैं। ये वे पृष्ठ हैं जिन्हें पहले लाया और संसाधित किया जाता है। crawler4j फिर इन पृष्ठों में सभी लिंक निकालता है और उन्हें आपके कन्फिट फ़ंक्शन पर भेज देता है। यदि आप वास्तव में उन सभी को क्रॉल करना चाहते हैं तो यह फ़ंक्शन केवल सभी कार्यों पर सच होना चाहिए। यदि आप केवल एक विशिष्ट डोमेन के भीतर पृष्ठों को क्रॉल करना चाहते हैं तो आप यूआरएल की जांच कर सकते हैं और उस पर आधारित सच या गलत लौट सकते हैं।

उन यूआरएल जो आपके कन्फिसिट सत्य लौटते हैं, फिर क्रॉलर धागे द्वारा लाए जाते हैं और उसी प्रक्रिया को उनके ऊपर किया जाता है।

उदाहरण कोड here शुरू करने के लिए एक अच्छा नमूना है।

+0

यह सही है, धन्यवाद! – seinecle

2

सामान्य दृष्टिकोण क्रॉलिंग को अलग करना होगा, और डाउनलोडिंग कार्यों को अलग-अलग कार्य थ्रेड के साथ अलग-अलग थ्रेड के साथ, आपकी स्मृति आवश्यकताओं के आधार पर (यानी अधिकतम रैम जो आप इस जानकारी को संग्रहीत करने के लिए उपयोग करना चाहते हैं)।

हालांकि, crawler4j पहले से ही आपको यह कार्यक्षमता देता है। अलग थ्रेड में डाउनलोड और क्रॉलिंग को विभाजित करके, आप अपने कनेक्शन के उपयोग को अधिकतम करने की कोशिश करते हैं, जितना अधिक डेटा खींचते हैं उतना डेटा खींचते हैं, और जैसे ही जानकारी प्रदान करने वाले सर्वर आपको भेज सकते हैं। इसके लिए प्राकृतिक सीमा यह है कि, यदि आप 1,000 थ्रेड उत्पन्न करते हैं, तो सर्वरों को केवल 0.3k प्रति सेकेंड पर सामग्री दी जाती है, फिर भी यह प्रति सेकंड केवल 300 KB है जिसे आप डाउनलोड करेंगे। लेकिन आप इसके उस पहलू पर कोई नियंत्रण नहीं रखते हैं, मुझे डर है।

गति को बढ़ाने का दूसरा तरीका इंटरनेट पर एक फ़ैटर पाइप के साथ क्रॉलर को चलाने के लिए है, क्योंकि आपकी अधिकतम डाउनलोड गति है, मैं अनुमान लगा रहा हूं, सीमित कारक यह है कि आप वर्तमान में डेटा कितनी तेजी से प्राप्त कर सकते हैं । उदाहरण के लिए, यदि आप एडब्लूएस इंस्टेंस (या क्लाउड एप्लिकेशन प्लेटफॉर्म में से किसी भी) पर क्रॉलिंग चला रहे थे, तो आप बैकबोन के लिए अपने बेहद हाई स्पीड कनेक्शन से लाभ उठाएंगे, और वेबसाइटों के संग्रह को क्रॉल करने में कितना समय लगेगा घर या कार्यालय कनेक्शन में जो कुछ भी आप जा रहे हैं उससे परे अपने बैंडविड्थ को प्रभावी रूप से विस्तारित करना (जब तक कि आप एक आईएसपी पर काम नहीं करते)।

यह सैद्धांतिक रूप से संभव है कि, ऐसी स्थिति में जहां आपकी पाइप बहुत बड़ी है, सीमा आपके डिस्क की अधिकतम लिखने की गति बनने लगती है, किसी भी डेटा के लिए जिसे आप स्थानीय (या नेटवर्क) डिस्क स्टोरेज में सहेज रहे हैं।

संबंधित मुद्दे

 संबंधित मुद्दे