Jsoup क्या है?
Scrapeless Scraping Browser क्लाउड ब्राउज़र में गतिशील पृष्ठों को चलाता है ताकि Java एप्लिकेशन परिणामी HTML को पार्सर्स जैसे jsoup के साथ संसाधित कर सकें।
Jsoup, जिसे सामान्यतः परियोजना द्वारा jsoup के रूप में लिखा गया है, HTML को लाने, पार्स करने, क्वेरी करने और संशोधित करने के लिए Java पुस्तकालय है। यह एक URL, फ़ाइल या स्ट्रिंग से एक दस्तावेज़ पेड़ बनाता है और एक एप्लिकेशन को तत्व, विशेषताएँ और पाठ निकालने की अनुमति देता है। यह अविश्वसनीय HTML को एक स्पष्ट सफेद सूची के साथ साफ करने का भी समर्थन करता है।
एक Java एप्लिकेशन के लिए, jsoup एक सार्वजनिक लेख पृष्ठ को शीर्षक, शरीर और लिंक के संग्रह में बदल सकता है बिना एक ब्राउज़र लॉन्च किए। यह लक्षित पृष्ठ का JavaScript निष्पादित नहीं करता है। आपको जो सामग्री चाहिए उसके चारों ओर अधिग्रहण विधि चुनें, फिर jsoup का उपयोग करके परिणामी मार्कअप को व्याख्यायित करें।
Jsoup मार्कअप को एक दस्तावेज़ में कैसे बदलता है
Jsoup इनपुट को एक दस्तावेज़ में पार्स करता है जिसमें तत्व और अन्य नोड होते हैं जिन्हें खोजा और चुना जा सकता है। इसका HTML पार्सर HTML पार्सिंग नियमों का पालन करता है और वास्तविक दुनिया के मार्कअप को समायोजित करने के लिए डिज़ाइन किया गया है, जिसमें दोषपूर्ण नेस्टिंग शामिल है। jsoup HTML प्रोसेसिंग इंटरफेस एक Java पुस्तकालय में अधिग्रहण, निष्कर्षण और दस्तावेज़ संशोधन लाता है।
परिणामी पेड़ निष्कर्षण के लिए अधिक उपयोगी है, बजाय इसके कि पूरे पृष्ठ को एक अविभाजित स्ट्रिंग के रूप में माना जाए। एक शीर्षक एक अनुभाग से संबंधित होता है, एक लिंक में एक पता विशेषता होती है, और एक कार्ड एक इकाई से संबंधित फ़ील्ड को शामिल करता है। आपके निष्कर्षण नियम इन संबंधों को व्यक्त कर सकते हैं बजाय इसके कि मनमाने पाठ स्थितियों पर निर्भर करें।
पार्सिंग यह साबित नहीं करता कि दस्तावेज़ वही है जिसे आप इकट्ठा करने का इरादा रखते थे। एक प्रतिक्रिया में साइट नेविगेशन पृष्ठ, एक पहुंच नोटिस, या एक एप्लिकेशन शेल शामिल हो सकता है। फ़ील्ड का चयन करने से पहले अपेक्षित दस्तावेज़ मार्करों की स्थापना करें ताकि पुस्तकालय की दोषपूर्ण मार्कअप को पार्स करने की क्षमता एक अधिग्रहण समस्या को छुपा न सके।
एक URL लाना या मौजूदा HTML पार्स करना
Jsoup एक वेब URL को लाने और पार्स करने में सक्षम है, या उस मार्कअप को पार्स कर सकता है जिसे किसी अन्य घटक ने पहले ही प्राप्त किया है। एक सीधा कनेक्शन एक सरल सार्वजनिक पृष्ठ के लिए सुविधाजनक है। मौजूदा HTML उपयोगी है जब एप्लिकेशन के पास एक अलग HTTP परत होती है, संग्रहीत दस्तावेज़ पढ़ता है, या ब्राउज़र कार्यप्रवाह से एक रेंडर्ड स्नैपशॉट प्राप्त करता है।
इन पथों को निष्कर्षण अनुबंध साझा करने चाहिए। पार्सर को स्वीकार्य मार्कअप की आवश्यकता होती है और, जब लिंक महत्वपूर्ण होते हैं, तो दस्तावेज़ का आधार पता। अधिग्रहण घटक को प्रतिक्रिया संदर्भ जैसे स्रोत और अंतिम URL बनाए रखना चाहिए। उस जानकारी को नष्ट न करें केवल इसलिए कि एक पार्सिंग विधि सीधे एक दस्तावेज़ वापस कर सकती है।
जब यह अनुरोध नीतियों को नियंत्रित करना आसान बनाता है, तो लाने को पार्सिंग से अलग करें। एक Java सेवा पहले से ही समय सीमाओं, गंतव्य सत्यापन, और प्रमाणीकरण के लिए मानक हो सकती है। इन मानकों को एक अधिग्रहण परत में रखना हर निष्कर्षण विधि के भीतर एक दूसरी नीति लागू करने की तुलना में स्पष्ट हो सकता है।
संग्रहीत HTML भी केंद्रित रखरखाव का समर्थन करता है। एक अनुमत प्रतिनिधि दस्तावेज़ आपको स्रोत से बार-बार संपर्क किए बिना एक चयनकर्ता परिवर्तन का निरीक्षण करने देता है। उस दस्तावेज़ को एक परीक्षण इनपुट के रूप में मानें, और इसके परिणामों को एक लाइव संग्रह के रूप में प्रस्तुत न करें। सहेजा गया इनपुट पार्सिंग व्यवहार को सत्यापित करता है बजाय इसके कि वर्तमान स्रोत उपलब्धता।
CSS चयनकर्ता और दस्तावेज़ ट्रैवर्सल
Jsoup चयनकर्ता तत्वों को टैग, विशेषता, वर्ग, और संरचनात्मक संबंध द्वारा खोजते हैं। jsoup CSS चयनकर्ता इंटरफेस दस्तावेज़ों और तत्वों पर उपलब्ध है, जो एक रिकॉर्ड कंटेनर पर निष्कर्षण शुरू करने और उस स्थानीय संदर्भ में जारी रखने की अनुमति देता है।
एक चित्रणात्मक सार्वजनिक पाठ्यक्रम कैटलॉग के लिए, शीर्षक, अवधि, और विस्तार लिंक पढ़ने से पहले प्रत्येक पाठ्यक्रम कार्ड का चयन करें। कुछ पाठ्यक्रम अवधि को छोड़ सकते हैं। स्थानीय चयन उस अनुपस्थिति को सही पाठ्यक्रम से जोड़कर रखता है बजाय इसके कि स्वतंत्र रूप से एकत्र की गई सूचियों के बीच मानों को बदलता है।
जब संबंध को वृक्ष के माध्यम से व्यक्त करना आसान हो, तो ट्रैवर्सल का उपयोग करें। एक लेबल और इसका पड़ोसी मान सुविधाजनक कक्षाएं नहीं रख सकते हैं, लेकिन उनका अभिभावक क्षेत्र अभी भी एक स्थिर सीमा प्रदान कर सकता है। उस घटना में एक आइटम-स्तरीय संबंध उपलब्ध होने पर दस्तावेज़ की जड़ से स्थिति की पूरी श्रृंखला पर निर्भर रहने से बचें।
इसके अलावा, एप्लिकेशन में अपेक्षित मानों की संख्या को स्पष्ट रूप से बनाएं। एक फ़ील्ड जिसे एक शीर्षक होना चाहिए, उसे चुपचाप सभी शीर्षकों को मिलाकर स्वीकार नहीं करना चाहिए। यदि कई संभावित तत्व मेल खाते हैं, तो या तो नियम को परिष्कृत करें या समीक्षा के लिए अस्पष्टता को बनाए रखें। एक गैर-खाली स्ट्रिंग लौटाना एक कमजोर शुद्धता जांच है।
पाठ, HTML, और विशेषताओं को अलग-अलग आउटपुट नियमों की आवश्यकता है
Jsoup साधारण पाठ, मार्कअप, और विशेषताओं के मानों को उजागर कर सकता है, लेकिन ये आउटपुट विभिन्न डाउनस्ट्रीम उद्देश्यों की सेवा करते हैं। एक खोज अनुक्रमणिका को सामान्यीकृत पाठ की आवश्यकता हो सकती है। एक नियंत्रित सामग्री रेंडरर को साफ किया गया मार्कअप की आवश्यकता हो सकती है। एक लिंक तालिका को हल किए गए पतों और स्रोत संदर्भ की आवश्यकता होती है।
पाठ निष्कर्षण में वंशज सामग्री शामिल हो सकती है, इसलिए एक चयनित कंटेनर में लेबल या नेविगेशन हो सकता है जो फ़ील्ड में शामिल नहीं होता है। एक पाठ्यक्रम शीर्षक कंटेनर एक बैज भी शामिल कर सकता है। यह जांचें कि क्या चुनी गई निष्कर्षण दायरा केवल शीर्षक उत्पन्न करता है बजाय इसके कि हर निकटवर्ती शब्द उसके भाग के रूप में है।
स्कैन किए गए मानों को उनके प्रदर्शन रूप को सामान्यीकृत करने से पहले संरचित रखें। एक पाठ्यक्रम कोड में अर्थपूर्ण विराम चिह्न और अग्रणी शून्य हो सकते हैं। एक अवधि लेबल में ऐसे इकाई हो सकते हैं जिन्हें एक संख्यात्मक मात्रा से अलग-अलग संग्रहीत किया जाना चाहिए। हर फ़ील्ड पर समान पाठ सफाई लागू करना पहचान को नुकसान पहुंचा सकता है, भले ही पृष्ठ को सही ढंग से पार्स किया गया हो।
| आउटपुट | उपयोगी | महत्वपूर्ण सीमा |
|---|---|---|
| सादा पाठ | खोज, संक्षेप, और फ़ील्ड मान | सही वंशज दायरा चुनें। |
| HTML मार्कअप | नियंत्रित समृद्ध सामग्री प्रदर्शन | उचित आउटपुट के अनुसार सफाई नीति लागू करें। |
| विशेषताएँ | पहचानकर्ता और स्रोत मेटाडेटा | फ़ील्ड के मूल अर्थ को बनाए रखें। |
| पूर्ण लिंक | खोज और संग्रहीत संदर्भ | सही आधार पता का उपयोग करें। |
सापेक्ष लिंक्स को एक आधार URI की आवश्यकता होती है
Jsoup सापेक्ष लिंक्स को दस्तावेज़ का आधार URI का उपयोग करके हल करता है। साधारण पता विशेषता को पढ़ने से स्रोत का सापेक्ष मान मिल सकता है, जबकि निरपेक्ष URL सहायक उस मान को हल करते हैं। jsoup URL समाधान मॉडल सही पार्सिंग संदर्भ का एक हिस्सा बनाता है।
एक सहेजा गया HTML स्ट्रिंग जरूरी नहीं है कि वह उस स्थान को ले जाए जहाँ से इसे एकत्र किया गया था। यदि आप उस स्ट्रिंग को लोड करते हैं बिना उचित आधार प्रदान किए, तो एक सापेक्ष विवरण लिंक अपेक्षित रूप से हल नहीं हो सकता है। इसे इनपुट के साथ पता संग्रहीत करें ताकि सहेजे गए और नए अधिग्रहित दस्तावेज़ों से निकासी एक ही नियम का पालन करें।
समाधान भी स्वीकृति से भिन्न है। एक व्याकरणिक रूप से मान्य निरपेक्ष URL संग्रह के लक्षित स्रोत दायरे के बाहर संकेत कर सकता है। इसे हल करने के बाद, योजना और गंतव्य की जांच करें इससे पहले कि एक और अनुरोध निर्धारित किया जाए। यह सामान्य पृष्ठ लिंक्स को एक संकीर्ण सूची कार्य को अप्रासंगिक संग्रह में विस्तारित होने से रोकता है।
HTML की सफाई पाठ निकालने से भिन्न है
Jsoup का क्लीनर एक सफ़लिस्ट लागू करता है यह निर्धारित करने के लिए कि कौन से HTML तत्व, विशेषताएँ और मान आउटपुट में रह सकते हैं। यह प्रासंगिक है जब एकत्रित या उपयोगकर्ता-संपन्न मार्कअप HTML के रूप में प्रदर्शित किया जाएगा। यह किसी दस्तावेज़ को पार्स करने या उसके पाठ को पढ़ने के कार्य से अलग है।
यह jsoup सफ़लिस्ट सेनिटाइज़र पार्स की गई संरचना पर काम करता है। आवेदन आउटपुट संदर्भ के लिए उपयुक्त नीति का चयन करता है। एक विवरण क्षेत्र जो जोर और लिंक्स की अनुमति देता है, उसे एक अन्य नीति की आवश्यकता हो सकती है जो केवल साधारण पाठ होना चाहिए।
आउटपुट संदर्भ को विशेष बनाएं। HTML की सफाई मनमाने सामग्री को सुरक्षित JavaScript, SQL, या फ़ाइल सिस्टम पथ में नहीं बदलती। प्रत्येक गंतव्य के लिए उचित प्रबंधन का उपयोग करें। संग्रह पाइपलाइन में, मूल मार्कअप को साफ़ किए गए प्रदर्शन सामग्री से अलग रखें जब मूल का रखरखाव अनुमति और निदान के लिए उपयोगी हो।
एक क्लीनर भी जानकारी हटा सकता है जिसकी आवश्यकताएँ आपके डेटा सेट को चाहिए। यदि निकासी उस विशेषता पर निर्भर करती है जो प्रदर्शित सफ़लिस्ट द्वारा बाहर की गई हो, तो समृद्ध पाठ प्रदर्शनी संस्करण तैयार करने से पहले उस क्षेत्र को निकालें। वह क्रम डेटा संग्रह और प्रस्तुति नीति को आकस्मिक रूप से एक परिवर्तनीय दस्तावेज़ पर प्रतिस्पर्धा करने से रोकता है।
जहाँ Jsoup रुकता है और ब्राउज़र अधिग्रहण शुरू होता है
Jsoup उपलब्ध दस्तावेज़ को संसाधित करने में रुकता है; यह एक इंटरएक्टिव ब्राउज़र सत्र नहीं चलाता। एकल-पृष्ठ एप्लिकेशन HTML वापस कर सकता है जो स्क्रिप्टों का संदर्भ देता है लेकिन वास्तविक पाठ्यक्रम कार्डों को छोड़ देता है। उस प्रतिक्रिया को सटीक रूप से पार्स करना फिर भी कोई पाठ्यक्रम नहीं लाता है क्योंकि आवश्यक स्थिति नहीं बनाई गई है।
Scrapeless स्क्रैपिंग ब्राउज़र इन मामलों के लिए क्लाउड ब्राउज़र निष्पादन प्रदान करता है। एक ब्राउज़र वर्कफ़्लो का उपयोग करें आवश्यक पृष्ठ स्थिति तक पहुँचने के लिए, फिर संबंधित HTML को अपने Java निकासी परत को सौंपें। स्नैपशॉट लेने से पहले पूर्णता का अर्थ परिभाषित करें, विशेष रूप से जब फ़िल्टर या पृष्ठ क्रमांक प्रदर्शित सामग्री को बदलते हैं।
यह स्क्रैपिंग ब्राउज़र परिचय प्रबंधित ब्राउज़र ऑपरेशन की व्याख्या करता है, और संबंधित ब्राउज़र संग्रह प्रथाएँ संचालन संदर्भ प्रदान करती हैं। Java रिकॉर्ड स्कीमा को अधिग्रहण विधि से स्वतंत्र रखें ताकि रेंडरिंग जोड़ने के लिए हर आउटपुट फ़ील्ड को पुनर्परिभाषित करने की आवश्यकता न हो।
मूल्यांकन करें Scrapeless मूल्य निर्धारण आपके स्रोतों को वास्तव में आवश्यक ब्राउज़र कार्य के आसपास। एक सामान्य HTML दस्तावेज़ एक प्रत्यक्ष अनुरोध के माध्यम से उपलब्ध हो सकता है, जबकि उसी परियोजना में एक और पृष्ठ इंटरएक्शन पर निर्भर कर सकता है। उन आवश्यकताओं को पृष्ठ प्रकार के माध्यम से वर्गीकृत करें बजाय एक भारी अधिग्रहण विधि को सब कुछ सौंपने के।
निष्कर्ष
Jsoup वास्तविक HTML को संरचित डेटा और नियंत्रित मार्कअप में परिवर्तित करने के लिए एक व्यावहारिक Java लाइब्रेरी है। दस्तावेज़ की पहचान, आधार पते, और रिकॉर्ड सीमाओं को स्पष्ट रखें। आउटपुट संदर्भ के लिए सफाई का उपयोग करें जिसे इसकी आवश्यकता है, और जब वांछित सामग्री पृष्ठ निष्पादन पर निर्भर करती है, तो ब्राउज़र अधिग्रहण की शुरूआत करें।
अपने Java वर्कफ़्लो में गतिशील HTML लाएं
Scrapeless स्क्रैपिंग ब्राउज़र के साथ उस पृष्ठ स्थिति को प्राप्त करें जिसकी आपकी Java एप्लिकेशन को आवश्यकता है, फिर निकासी और HTML सफाई को स्पष्ट रखें।
आज साइन अप करें और प्राप्त करें $5 का मुफ्त क्रेडिट — कोई क्रेडिट कार्ड आवश्यक नहीं है.
अपने $5 क्रेडिट का दावा करें →जय
Q: क्या Jsoup सीधे URL प्राप्त कर सकता है?
Jsoup अपने कनेक्शन इंटरफ़ेस के माध्यम से HTTP या HTTPS URLs को प्राप्त और पार्स कर सकता है। यह अन्यत्र प्राप्त की गई स्ट्रिंग्स और फ़ाइलों को भी पार्स कर सकता है। अपने एप्लिकेशन की अनुरोध नीति के लिए उपयुक्त मार्ग चुनें और सापेक्ष लिंक्स को हल करने की आवश्यकता होने पर दस्तावेज़ पते को संरक्षित करें।
Q: क्या Jsoup जावास्क्रिप्ट चलाता है?
Jsoup डाउनलोड किए गए दस्तावेज़ में जावास्क्रिप्ट को निष्पादित नहीं करता है। यह HTML को पार्स कर सकता है जब कोई अन्य घटक संबंधित पृष्ठ की स्थिति को रेंडर करता है। इसलिए एक खाली चयन अनुपस्थित रेंडर की गई सामग्री को सूचित कर सकता है न कि चयनकर्ता की समस्या।
Q: क्या HTML को पार्स करने से दिखाना सुरक्षित होता है?
केवल HTML को पार्स करने से यह स्थापित नहीं होता कि मार्कअप आपके एप्लिकेशन में प्रदर्शित करने के लिए उपयुक्त है। Jsoup उस उद्देश्य के लिए सफ़लिस्ट नीतियों के साथ एक अलग क्लीनर प्रदान करता है। वास्तविक आउटपुट संदर्भ के लिए एक नीति का चयन करें और साधारण पाठ क्षेत्रों को समृद्ध सामग्री क्षेत्रों से अलग रखें।
Q: एक निकाली गई लिंक अधूरा क्यों है?
एक लिंक स्रोत दस्तावेज़ में सापेक्ष हो सकता है, इसलिए इसकी सामान्य विशेषता मान एक पूर्ण पता नहीं हो सकता है। सही आधार URI प्रदान करें और jsoup की निरपेक्ष URL समाधान सुविधाओं का उपयोग करें। उसे जोड़ने से पहले हल की गई गंतव्य की जांच करें।