2008-08-28 15 views
23

किसी बाहरी पुस्तकालय के उपयोग के बिना, किसी वेबसाइट की HTML सामग्री को स्ट्रिंग में लाने का सबसे आसान तरीका क्या है?जावा में HTML कैसे प्राप्त करें

+3

http://stackoverflow.com/questions/238547/how-do-you-programmatically-download-a-webpage-in-java – jjnguy

उत्तर

32

मैं वर्तमान में इस का उपयोग कर रहा:

String content = null; 
URLConnection connection = null; 
try { 
    connection = new URL("http://www.google.com").openConnection(); 
    Scanner scanner = new Scanner(connection.getInputStream()); 
    scanner.useDelimiter("\\Z"); 
    content = scanner.next(); 
}catch (Exception ex) { 
    ex.printStackTrace(); 
} 
System.out.println(content); 

लेकिन यकीन नहीं वहाँ एक बेहतर तरीका है।

+5

के संभावित डुप्लिकेट का उपयोग क्यों "\\ Z" ? क्या यह केवल विंडोज़ पर एक ईओएफ नहीं है? मैं बस अनुमान लगा रहा हूँ। – greenoldman

+0

इसका उपयोग करते समय उच्च प्रदर्शन हिट से सावधान रहें। – qwertzguy

+0

आप "\\ Z" का उपयोग क्यों करते हैं? यह क्या करता है? मैंने इसके बिना कोशिश की, यह काम नहीं किया। –

2

मैंने अभी this post in your other thread छोड़ा है, हालांकि आपके ऊपर जो भी हो, वह भी काम कर सकता है। मुझे नहीं लगता कि या तो दूसरे की तुलना में कोई आसान होगा। अपाचे पैकेज को आपके कोड के शीर्ष पर केवल import org.apache.commons.HttpClient का उपयोग करके एक्सेस किया जा सकता है।

संपादित करें: लिंक भूल;)

+0

जाहिर है आप भी JAR फ़ाइल :) –

20

यह अच्छी तरह से मेरे लिए काम किया है: करने के लिए प्रदान की अन्य समाधान (रों) किसी भी अधिक कुशल हैं या नहीं

URL url = new URL(theURL); 
InputStream is = url.openStream(); 
int ptr = 0; 
StringBuffer buffer = new StringBuffer(); 
while ((ptr = is.read()) != -1) { 
    buffer.append((char)ptr); 
} 

सुनिश्चित नहीं हैं कि में।

+0

आप निम्नलिखित शामिल करने के लिए की जरूरत नहीं है स्थापित करने के लिए है? आयात java.io. * आयात java.net। * –

+1

ज़रूर, लेकिन वे इतनी बहुत सरल कोर जावा कर रहे हैं। वास्तविक कोड के लिए, स्पष्टता के लिए आयात विवरण छोड़े जाते हैं। '12' के बाद –

+0

, आपको बफर की सामग्री भी प्रदर्शित करनी चाहिए! या एक विधि लिखें जहां आप इसे पढ़ते हैं! सुनिश्चित हो – rupinderjeet

2

जबकि वेनिला-जावा नहीं है, मैं एक आसान समाधान प्रदान करूंगा। ग्रूवी ;-)

String siteContent = new URL("http://www.google.com").text 
संबंधित मुद्दे