2012-07-01 21 views
11

मैं एक प्रयोग के लिए जावा आधारित वेब क्रॉलर बनाना चाहता था। मैंने सुना है कि जावा में एक वेब क्रॉलर बनाना यह तरीका है कि यह आपका पहला समय है। हालांकि, मेरे पास दो महत्वपूर्ण प्रश्न हैं।जावा वेब क्रॉलर लाइब्रेरी

  1. वेब प्रोग्राम पर मेरा प्रोग्राम 'विज़िट' या 'कनेक्ट' कैसे होगा? कृपया एक संक्षिप्त स्पष्टीकरण दें। (मैं हार्डवेयर से सॉफ्टवेयर तक अमूर्त परतों की मूल बातें समझता हूं, यहां मुझे जावा अबास्ट्रक्शन में दिलचस्पी है)

  2. मुझे किस लाइब्रेरी का उपयोग करना चाहिए? मुझे लगता है कि मुझे वेब पृष्ठों से कनेक्ट करने के लिए लाइब्रेरी की आवश्यकता है, HTTP/HTTPS प्रोटोकॉल के लिए लाइब्रेरी, और HTML पार्सिंग के लिए लाइब्रेरी है।

उत्तर

7

यह है कि आपका प्रोग्राम वेब पेज पर 'विज़िट' या 'कनेक्ट' कैसे है।

URL url; 
    InputStream is = null; 
    DataInputStream dis; 
    String line; 

    try { 
     url = new URL("http://stackoverflow.com/"); 
     is = url.openStream(); // throws an IOException 
     dis = new DataInputStream(new BufferedInputStream(is)); 

     while ((line = dis.readLine()) != null) { 
      System.out.println(line); 
     } 
    } catch (MalformedURLException mue) { 
     mue.printStackTrace(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException ioe) { 
      // nothing to see here 
     } 
    } 

यह HTML पृष्ठ का स्रोत डाउनलोड करेगा।

एचटीएमएल पार्स के लिए देखें this

इसके jSpider और jsoup

+0

तो उपयोग करने का सुझाव है, यह एक पृष्ठ से जानकारी खींच करता है, या बस पृष्ठ पर जाने? मैं एक क्रॉलर लिखने की कोशिश कर रहा हूं जो उपयोगकर्ता इनपुट लेगा, maps.google.com पर जाएं, पते में प्लग करें और मार्ग समय और मार्ग की लंबाई लें और इसे वापस कार्यक्रम में लाएं। क्या यह संभव है? – Ungeheuer

+0

@ एड्रियन Google मानचित्र एपीआई पर एक नज़र डालें: https://developers.google.com/maps/documentation/distance-matrix/start –

1

मैं सुझाव है कि आप HttpClient library उपयोग करने के लिए एक बार देख ले। आप उदाहरण here पा सकते हैं।

0

आप ड्रायड या अपाचे Nutch explore.apache जावा आधारित क्रॉलर के लग रहा है पाने के लिए कर सकते हैं

7

Crawler4j आपके लिए सबसे अच्छा समाधान है,

Crawler4j एक खुला स्रोत जावा क्रॉलर जिसके लिए एक सरल अंतरफलक प्रदान करता है है वेब क्रॉलिंग। आप 5 मिनट में एक बहु थ्रेडेड वेब क्रॉलर सेट कर सकते हैं!

अधिक जावा आधारित वेब क्रॉलर टूल और प्रत्येक के लिए संक्षिप्त स्पष्टीकरण के लिए visit. भी।

4

पार्सिंग सामग्री के लिए, मैं Apache Tika का उपयोग कर रहा हूं।

0

हालांकि मुख्य रूप से यूनिट परीक्षण वेब अनुप्रयोगों के लिए उपयोग किया जाता है, HttpUnit एक वेबसाइट, क्लिक लिंक, टेबल का विश्लेषण और तत्वों का विश्लेषण करता है, और आपको सभी पृष्ठों के बारे में मेटा डेटा देता है। मैं इसे यूनिट परीक्षण के लिए नहीं बल्कि वेब क्रॉलिंग के लिए उपयोग करता हूं। - http://httpunit.sourceforge.net/

2

मैं crawler4j पसंद करूंगा। क्रॉलर 4j एक ओपन सोर्स जावा क्रॉलर है जो वेब को क्रॉल करने के लिए एक सरल इंटरफ़ेस प्रदान करता है। आप कुछ घंटों में एक बहु थ्रेडेड वेब क्रॉलर सेट कर सकते हैं।

5

अभी कई जावा आधारित HTML पार्सर शामिल है जो HTML पृष्ठों पर जाकर और विश्लेषण करने का समर्थन करता है।

Here's comple बुनियादी तुलना के साथ एचटीएमएल पार्सर की टी सूची।

+1

@ जीन-फ्रैंकोइसकोर्बेट: मैंने अब अपना जवाब परिशोधित कर लिया है। – Vishnu

0

मुझे लगता है कि jsoup दूसरों की तुलना में बेहतर है, जेएसओपी जावा 1.5 और ऊपर, स्कैला, एंड्रॉइड, ओएसजीआई और Google ऐप इंजन पर चलता है।

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