2010-01-23 13 views
9

मैं कुछ स्क्रीन स्क्रैपिंग करना चाहता हूं, आदर्श रूप से सीएसएस चयनकर्ताओं का उपयोग करना और XPath नहीं। क्या रूबी या पायथन में समान पुस्तकालय है?क्या जावा के लिए एलएक्सएमएल या नोकोगिरी जैसी लाइब्रेरी है?

उत्तर

7

जावा में लिखी गई स्क्रीन स्क्रैपिंग लाइब्रेरी दर्जनों हैं। बस कुछ ही अदालत में तलब करने के लिए:

  • TagSoup - एक SAX अनुरूप पार्सर जावा में लिखा है कि, बजाय पार्स करने सुनिर्मित या मान्य XML, HTML को पार्स के रूप में यह जंगली में पाया जाता है की : बुरा और क्रूर, हालांकि अक्सर बहुत कम से कम है। टैग्सप उन लोगों के लिए डिज़ाइन किया गया है जिनके पास कुछ तर्कसंगत अनुप्रयोग डिज़ाइन के समानता का उपयोग करके इस सामग्री को संसाधित करता है। SAX इंटरफ़ेस प्रदान करके, यह मानक XML उपकरण को भी सबसे खराब HTML पर लागू करने की अनुमति देता है।
  • Jericho HTML Parser - जेरिको एचटीएमएल पार्सर एक सरल लेकिन शक्तिशाली जावा पुस्तकालय विश्लेषण और कुछ सामान्य सर्वर साइड टैग सहित एक HTML दस्तावेज़, के कुछ हिस्सों के हेरफेर की अनुमति देता है, जबकि शब्दशः किसी भी गैर मान्यता प्राप्त है या अवैध एचटीएमएल प्रजनन है। यह उच्च स्तरीय एचटीएमएल फॉर्म मैनिपुलेशन फ़ंक्शंस भी प्रदान करता है। टी न तो कोई घटना और न ही पेड़ पार्सर आधारित है, बल्कि सरल पाठ खोज, कुशल टैग मान्यता और टैग स्थिति कैश के संयोजन के संयोजन का उपयोग करता है। पूरे स्रोत दस्तावेज़ का पाठ पहले स्मृति में लोड किया गया है, और उसके बाद प्रत्येक खोज ऑपरेशन के प्रासंगिक वर्णों के लिए केवल प्रासंगिक सेगमेंट खोजे गए हैं।
  • HTML Cleaner - एचटीएमएल क्लीनर व्यक्तिगत तत्वों की प्रतिबिंबित करता है और गंदे HTML से अच्छी तरह से गठित XML उत्पन्न करता है। यह समान नियमों का पालन करता है जो दस्तावेज़ ऑब्जेक्ट मॉडल बनाने के लिए क्रम में अधिकांश वेब ब्राउज़र उपयोग करते हैं। एक उपयोगकर्ता टैग फ़िल्टरिंग और संतुलन के लिए सेट कस्टम टैग और नियम प्रदान कर सकता है।
  • NekoHTML - NekoHTML एक साधारण HTML स्कैनर और टैग संतुलन कि पार्स HTML दस्तावेज़ के लिए आवेदन प्रोग्रामर सक्षम बनाता है और मानक XML का उपयोग इंटरफेस जानकारी का उपयोग है। पार्सर एचटीएमएल फाइलों को स्कैन कर सकता है और कई सामान्य गलतियों को "ठीक कर सकता है" जो मानव (और कंप्यूटर) लेखकों को HTML दस्तावेज़ लिखने में बनाते हैं। NekoHTML अनुपलब्ध अभिभावक तत्व जोड़ता है; वैकल्पिक अंत टैग वाले तत्व स्वचालित रूप से तत्व बंद कर देता है; और विसंगित इनलाइन तत्व टैग को संभाल सकता है।

और HTML Screen Scraping Tools written in Java पर कई और। लेकिन ये आईएमओ किसी भी तरह की सामग्री से निपटने के लिए सबसे अच्छा है (सभी प्रकार के बकवास को समझें) जैसा कि मैंने this previous answer में उल्लेख किया था। हालांकि यह आपके लिए कोई मुद्दा नहीं हो सकता है।

बस मामले में, शायद Nokogiri pure Java status धागा देखें।

अद्यतन: एक नई परियोजना जारी की गई है (2010-01-31), jsoup है, जो एक selector-syntax to find elements प्रदान करता है। इसके लेखक से अधिक जानकारी और/या this answer के लिए अपनी वेबसाइट देखें।

1

आप jRuby के माध्यम से hpricot का उपयोग कर सकते हैं। इसके बारे में अधिक जानकारी के लिए this SO question देखें।

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