Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में वेबपेज के कंटेंट को स्ट्रिंग में कैसे पढ़ें?

Java का उपयोग करके आप कई तरीकों से वेब पेज के कंटेंट को पढ़ सकते हैं। यहाँ हम उनमें से तीन पर चर्चा करेंगे।

openStream() विधि का उपयोग करके

java.net पैकेज का URL क्लास एक यूनिफॉर्म रिसोर्स लोकेटर को दर्शाता है जिसका उपयोग वर्ल्ड वाइड वेब में एक रिसोर्स (फाइल या डायरेक्टरी या रेफरेंस) को इंगित करने के लिए किया जाता है।

इस क्लास की openStream() विधि वर्तमान ऑब्जेक्ट द्वारा दर्शाए गए URL से कनेक्शन खोलती है और एक InputStream ऑब्जेक्ट लौटाती है जिसका उपयोग करके आप URL से डेटा पढ़ सकते हैं।

इसलिए, वेब पेज से डेटा पढ़ने के लिए (URL क्लास का उपयोग करके):

  • वांछित वेब पेज के URL को पैरामीटर के रूप में इसके कंस्ट्रक्टर को पास करके java.net.URL क्लास को इंस्टेंशिएट करें।

  • openStream() विधि को इनवोक करें और InputStream ऑब्जेक्ट प्राप्त करें।

  • ऊपर प्राप्त InputStream ऑब्जेक्ट को पैरामीटर के रूप में पास करके Scanner क्लास को इंस्टेंशिएट करें।

उदाहरण

import java.io.IOException; 
import java.net.URL; 
import java.util.Scanner; 

public class ReadingWebPage { 
    public static void main(String args[]) throws IOException { 
        // URL क्लास को इंस्टेंशिएट करना 
        URL url = new URL("https://www.something.com/"); 
        // निर्दिष्ट पेज का कंटेंट प्राप्त करना 
        Scanner sc = new Scanner(url.openStream()); 
        // परिणाम रखने के लिए StringBuffer क्लास को इंस्टेंशिएट करना 
        StringBuffer sb = new StringBuffer(); 
        while (sc.hasNext()) { 
            sb.append(sc.next()); 
            // System.out.println(sc.next()); 
        } 
        // StringBuffer ऑब्जेक्ट से स्ट्रिंग प्राप्त करना 
        String result = sb.toString(); 
        System.out.println(result); 
        // HTML टैग्स हटाना 
        result = result.replaceAll("<[^>]*>", ""); 
        System.out.println("Contents of the web page: " + result); 
    } 
}

आउटपुट

<html><body><h1>Itworks!</h1></body></html>
Contents of the web page: Itworks!

HttpClient का उपयोग करके

Http क्लाइंट एक ट्रांसफर लाइब्रेरी है, यह क्लाइंट साइड पर रहती है, HTTP मैसेज भेजती और प्राप्त करती है। यह हाल के HTTP स्टैंडर्ड्स को पूरा करने वाला अप-टू-डेट, फीचर-रिच और कुशल कार्यान्वयन प्रदान करती है।

HTTP प्रोटोकॉल का GET रिक्वेस्ट दिए गए URI का उपयोग करके दिए गए सर्वर से जानकारी प्राप्त करने के लिए उपयोग किया जाता है। GET का उपयोग करने वाले रिक्वेस्ट्स को केवल डेटा प्राप्त करना चाहिए और डेटा पर कोई अन्य प्रभाव नहीं डालना चाहिए।

HttpClient API एक क्लास प्रदान करता है जिसका नाम HttpGet है जो GET रिक्वेस्ट मेथड को दर्शाता है। GET रिक्वेस्ट को एक्जीक्यूट करने और वेब पेज के कंटेंट को प्राप्त करने के लिए:

  • HttpClients क्लास की createDefault() विधि एक CloseableHttpClient ऑब्जेक्ट लौटाती है, जो HttpClient इंटरफ़ेस का बेस इम्प्लीमेंटेशन है। इस विधि का उपयोग करके HttpClient ऑब्जेक्ट बनाएं।

  • HttpGet क्लास को इंस्टेंशिएट करके HTTP GET रिक्वेस्ट बनाएं। इस क्लास का कंस्ट्रक्टर एक स्ट्रिंग वैल्यू स्वीकार करता है जो उस वेब पेज के URI को दर्शाता है जिसे आप रिक्वेस्ट भेजना चाहते हैं।

  • execute() विधि को इनवोक करके HttpGet रिक्वेस्ट को एक्जीक्यूट करें।

  • रिस्पांस से वेब साइट के कंटेंट को दर्शाने वाला InputStream ऑब्जेक्ट प्राप्त करें:

httpresponse.getEntity().getContent()

उदाहरण

import java.util.Scanner; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.CloseableHttpClient; 
import org.apache.http.impl.client.HttpClients; 

public class HttpClientExample { 
    public static void main(String args[]) throws Exception { 
        // HttpClient ऑब्जेक्ट बनाना 
        CloseableHttpClient httpclient = HttpClients.createDefault(); 
        // HttpGet ऑब्जेक्ट बनाना 
        HttpGet httpget = new HttpGet("https://www.something.com/"); 
        // GET रिक्वेस्ट एक्जीक्यूट करना 
        HttpResponse httpresponse = httpclient.execute(httpget); 
        Scanner sc = new Scanner(httpresponse.getEntity().getContent()); 
        // परिणाम रखने के लिए StringBuffer क्लास को इंस्टेंशिएट करना 
        StringBuffer sb = new StringBuffer(); 
        while (sc.hasNext()) { 
            sb.append(sc.next()); 
            // System.out.println(sc.next()); 
        } 
        // StringBuffer ऑब्जेक्ट से स्ट्रिंग प्राप्त करना 
        String result = sb.toString(); 
        System.out.println(result); 
        // HTML टैग्स हटाना 
        result = result.replaceAll("<[^>]*>", ""); 
        System.out.println("Contents of the web page: " + result); 
    } 
}

आउटपुट

<html><body><h1>Itworks!</h1></body></html>
Contents of the web page: Itworks!

Jsoup लाइब्रेरी का उपयोग करके

Jsoup HTML-आधारित कंटेंट के साथ काम करने के लिए एक Java-आधारित लाइब्रेरी है। यह DOM, CSS, और jquery-जैसे मेथड्स के सर्वोत्तम उपयोग से डेटा निकालने और मैनिपुलेट करने के लिए एक बहुत सुविधाजनक API प्रदान करता है। यह WHATWG HTML5 स्पेसिफिकेशन को इम्प्लीमेंट करता है, और HTML को उसी DOM में पार्स करता है जैसा आधुनिक ब्राउज़र करते हैं।

Jsoup लाइब्रेरी का उपयोग करके वेब पेज के कंटेंट को प्राप्त करने के लिए:

  • Jsoup क्लास की connect() विधि एक वेब पेज का URL स्वीकार करती है और निर्दिष्ट वेब पेज से कनेक्ट होती है और कनेक्शन ऑब्जेक्ट लौटाती है। connect() विधि का उपयोग करके वांछित वेब पेज से कनेक्ट करें।

  • Connection इंटरफ़ेस की get() विधि GET रिक्वेस्ट को भेजती/एक्जीक्यूट करती है और HTML डॉक्यूमेंट को Document क्लास के ऑब्जेक्ट के रूप में लौटाती है। get() विधि को इनवोक करके पेज पर GET रिक्वेस्ट भेजें।

  • प्राप्त डॉक्यूमेंट के कंटेंट को स्ट्रिंग में प्राप्त करें:

String result = doc.body().text();

उदाहरण

import java.io.IOException; 
import org.jsoup.Connection; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

public class JsoupExample { 
    public static void main(String args[]) throws IOException { 
        String page = "https://www.something.com/"; 
        // वेब पेज से कनेक्ट करना 
        Connection conn = Jsoup.connect(page); 
        // GET रिक्वेस्ट एक्जीक्यूट करना 
        Document doc = conn.get(); 
        // वेब पेज के कंटेंट (बॉडी) को प्राप्त करना 
        String result = doc.body().text(); 
        System.out.println(result); 
    } 
}

आउटपुट

It works!

  1. जावा में CSV फ़ाइल से डेटा कैसे पढ़ें? जावा में CSV फ़ाइल से डेटा कैसे पढ़ें?

    CSV का अर्थ कॉमा सेपरेटेड वैल्यूज़ है। CSV फ़ाइल में, प्रत्येक पंक्ति में शब्द होते हैं जो कॉमा (,) से अलग होते हैं और इसे .csv एक्सटेंशन के साथ स्टोर किया जाता है। हम BufferedReader क्लास के readLine() मेथड का उपयोग करके CSV फ़ाइल को लाइन दर लाइन पढ़ सकते हैं। प्रत्येक पंक्ति को कॉमा कैरेक्टर पर

  1. - जावा में दी गई स्ट्रिंग के सभी कैपिटल लेटर्स कैसे प्रिंट करें?

    Character क्लास Object क्लास का एक सबक्लास है और यह प्रिमिटिव टाइप char के मान को ऑब्जेक्ट में लपेटता है। Character क्लास टाइप का एक ऑब्जेक्ट एक सिंगल फील्ड रखता है जिसका टाइप char है। हम स्ट्रिंग के कैरेक्टर्स को लूप में इटरेट करके और isUpperCase() मेथड का उपयोग करके व्यक्तिगत कैरेक्टर्स अपरकेस ल

  1. जावा में प्रॉपर्टीज़ फ़ाइल से डेटा कैसे पढ़ें? जावा में प्रॉपर्टीज़ फ़ाइल से डेटा कैसे पढ़ें?

    Properties Hashtable क्लास का एक सबक्लास है और यह प्रॉपर्टीज़ के एक स्थायी सेट को दर्शाता है। Properties को स्ट्रीम में सेव किया जा सकता है या स्ट्रीम से लोड किया जा सकता है। प्रॉपर्टी लिस्ट में प्रत्येक कुंजी और उसका संबंधित मान एक स्ट्रिंग है। Properties फ़ाइल का उपयोग जावा में कॉन्फ़िगरेशन को ए