HTTP Errors এবং Timeout Management

JSoup এর জন্য Exception Handling - জেসুপ (JSoup) - Java Technologies

245

ওয়েব স্ক্র্যাপিং বা HTTP রিকোয়েস্ট পাঠানোর সময় সাধারণত HTTP Errors এবং টাইমআউট সমস্যা দেখা দিতে পারে। এই সমস্যা সমাধানে জেসুপ (JSoup) বেশ কিছু কার্যকরী ফিচার সরবরাহ করে। HTTP Errors এবং টাইমআউট ম্যানেজ করার জন্য সঠিক পদ্ধতি ব্যবহার করলে স্ক্র্যাপিং প্রক্রিয়া আরও স্থিতিশীল এবং কার্যকরী হয়ে ওঠে।

এখানে জেসুপ ব্যবহার করে HTTP Errors এবং Timeout সমাধানের জন্য কিছু পদ্ধতি আলোচনা করা হয়েছে।


HTTP Errors হ্যান্ডলিং

HTTP Errors সাধারণত সার্ভারের সমস্যার কারণে ঘটে। যেমন 404 (Not Found), 500 (Internal Server Error) বা 403 (Forbidden) ইত্যাদি। জেসুপ এই ধরনের HTTP Errors হ্যান্ডল করতে সক্ষম।

উদাহরণ

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.Connection;

public class JsoupHttpErrorHandling {
    public static void main(String[] args) {
        try {
            String url = "https://www.example.com";  // ভুল URL ব্যবহার করলে 404 Error আসবে
            Document doc = Jsoup.connect(url).get();
            
            // সার্ভারের HTML ডকুমেন্ট রেসপন্স
            System.out.println("Title: " + doc.title());
        } catch (Exception e) {
            // HTTP Error Handling
            System.out.println("Error occurred: " + e.getMessage());
        }
    }
}

এখানে, আমরা Jsoup.connect(url).get() মেথড ব্যবহার করেছি যা HTTP GET রিকোয়েস্ট পাঠায়। যদি সার্ভার থেকে কোনো ত্রুটি (যেমন 404 বা 500) আসে, তবে এটি Exception থ্রো করবে। try-catch ব্লকের মাধ্যমে আমরা ত্রুটিগুলো হ্যান্ডল করতে পারি।

HTTP Error কোড চেক করা

জেসুপের Connection.Response অবজেক্ট ব্যবহার করে আপনি HTTP রেসপন্স কোড চেক করতে পারেন এবং ত্রুটি সনাক্ত করতে পারেন।

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.Connection;

public class JsoupHttpErrorCodeHandling {
    public static void main(String[] args) {
        try {
            String url = "https://www.example.com";  // ভুল URL ব্যবহার করলে 404 Error আসবে
            Connection.Response response = Jsoup.connect(url).execute();
            
            // HTTP রেসপন্স কোড চেক করা
            int statusCode = response.statusCode();
            if (statusCode != 200) {
                System.out.println("Error: HTTP Status Code " + statusCode);
            } else {
                Document doc = response.parse();
                System.out.println("Title: " + doc.title());
            }
        } catch (Exception e) {
            System.out.println("Error occurred: " + e.getMessage());
        }
    }
}

এখানে response.statusCode() মেথড ব্যবহার করে আমরা HTTP রেসপন্স কোড চেক করছি। যদি কোড 200 না হয়, তাহলে একটি ত্রুটি মেসেজ প্রদর্শন করা হবে।


Timeout Management

টাইমআউট সমস্যা সাধারণত সার্ভার থেকে দ্রুত রেসপন্স না পাওয়ার কারণে ঘটে। টাইমআউট ব্যবস্থাপনা খুবই গুরুত্বপূর্ণ যখন আপনি বড় ওয়েবসাইট স্ক্র্যাপ করছেন বা ইন্টারনেটের ধীরগতির সংযোগ ব্যবহার করছেন।

টাইমআউট সেট করা

জেসুপের timeout() মেথডের মাধ্যমে আপনি রিকোয়েস্টের জন্য টাইমআউট সেট করতে পারেন। সাধারণত টাইমআউট ৩০০০ মিলিসেকেন্ড (3 সেকেন্ড) সেট করা হয়, তবে আপনি এটি আপনার প্রয়োজন অনুসারে বাড়াতে বা কমাতে পারেন।

উদাহরণ

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.Connection;

public class JsoupTimeoutManagement {
    public static void main(String[] args) {
        try {
            String url = "https://www.example.com";  // টাইমআউট সহ GET রিকোয়েস্ট
            Document doc = Jsoup.connect(url)
                                 .timeout(5000)  // টাইমআউট 5 সেকেন্ড
                                 .get();
            
            // সার্ভারের HTML ডকুমেন্ট রেসপন্স
            System.out.println("Title: " + doc.title());
        } catch (Exception e) {
            System.out.println("Error occurred: " + e.getMessage());
        }
    }
}

এখানে timeout(5000) মেথড ব্যবহার করে টাইমআউট ৫ সেকেন্ড (5000 মিলিসেকেন্ড) নির্ধারণ করা হয়েছে। এর মানে হল যে সার্ভার ৫ সেকেন্ডের মধ্যে রেসপন্স না দিলে একটি IOException ছুঁড়ে দিবে।


সারাংশ

জেসুপ (JSoup) দিয়ে HTTP Errors এবং টাইমআউট ম্যানেজমেন্ট করা সম্ভব এবং এটি ওয়েব স্ক্র্যাপিং প্রক্রিয়াকে আরও নির্ভরযোগ্য করে তোলে। আপনি HTTP Errors যেমন 404 বা 500 হ্যান্ডল করতে পারেন এবং টাইমআউট সেট করে নির্দিষ্ট সময়ের মধ্যে সার্ভারের রেসপন্স নিতে পারেন। try-catch ব্লক, statusCode() মেথড এবং timeout() মেথড ব্যবহার করে আপনি এই সমস্যাগুলো সঠিকভাবে ম্যানেজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...