Spring Boot হলো একটি জনপ্রিয় Java ফ্রেমওয়ার্ক যা দ্রুত এবং সহজে অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। ওয়েব স্ক্র্যাপিং এর জন্য JSoup ব্যবহার করে Spring Boot অ্যাপ্লিকেশন তৈরি করা একটি শক্তিশালী সমাধান। এটি আপনাকে HTML পেজ থেকে তথ্য এক্সট্র্যাক্ট করতে এবং তা প্রদর্শন করতে সাহায্য করে।
এই টিউটোরিয়ালে আমরা Spring Boot অ্যাপ্লিকেশন তৈরি করব এবং JSoup ব্যবহার করে একটি ওয়েব পেজ স্ক্র্যাপ করব।
Spring Boot এ Web Scraping শুরু করা
১. Spring Boot প্রোজেক্ট তৈরি করা
প্রথমে, Spring Boot প্রোজেক্ট তৈরি করতে Spring Initializr ব্যবহার করতে পারেন। এখানে কয়েকটি প্রয়োজনীয় dependency থাকবে:
- Spring Web: এটি HTTP রিকোয়েস্ট এবং রেসপন্স ম্যানেজমেন্ট করতে ব্যবহৃত হয়।
- Thymeleaf (যদি আপনি HTML টেমপ্লেট রেন্ডারিং করতে চান)
- JSoup: ওয়েব স্ক্র্যাপিং এবং HTML পার্সিংয়ের জন্য
Spring Initializr থেকে প্রয়োজনীয় dependency সহ একটি প্রোজেক্ট ডাউনলোড করুন এবং আপনার IDE তে ওপেন করুন।
২. pom.xml ফাইলে JSoup ডিপেনডেন্সি যোগ করা
Spring Boot প্রোজেক্টে JSoup ব্যবহার করার জন্য pom.xml ফাইলে JSoup ডিপেনডেন্সি যোগ করতে হবে।
<dependencies>
<!-- Other dependencies -->
<!-- JSoup dependency -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.16.1</version>
</dependency>
</dependencies>
৩. Spring Boot Controller তৈরি করা
এখন আমরা একটি Spring Boot Controller তৈরি করব, যা একটি ওয়েব পেজ থেকে তথ্য স্ক্র্যাপ করবে এবং ক্লায়েন্টকে রিটার্ন করবে।
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
@RestController
@RequestMapping("/scrape")
public class WebScrapingController {
@GetMapping("/title")
public String getWebsiteTitle() throws IOException {
String url = "https://example.com"; // ওয়েব পেজের URL
// JSoup দিয়ে ওয়েব পেজ স্ক্র্যাপ করা
Document doc = Jsoup.connect(url).get();
// পেজের টাইটেল এক্সট্র্যাক্ট করা
String title = doc.title();
// টাইটেল রিটার্ন করা
return "Page Title: " + title;
}
@GetMapping("/content")
public String getWebsiteContent() throws IOException {
String url = "https://example.com"; // ওয়েব পেজের URL
// JSoup দিয়ে ওয়েব পেজ স্ক্র্যাপ করা
Document doc = Jsoup.connect(url).get();
// div#content নির্বাচন করা
Element content = doc.select("div#content").first();
// কনটেন্ট রিটার্ন করা
return content.text();
}
}
ব্যাখ্যা:
- এখানে,
@RestControllerএবং@RequestMapping("/scrape")ব্যবহার করে একটি RESTful API তৈরি করা হয়েছে, যা ওয়েব স্ক্র্যাপিং করতে পারে। getWebsiteTitle()মেথডে, আমরা একটি ওয়েব পেজের টাইটেল স্ক্র্যাপ করেছি এবং তা রিটার্ন করেছি।getWebsiteContent()মেথডে, আমরাdiv#contentট্যাগের কনটেন্ট স্ক্র্যাপ করেছি এবং তা রিটার্ন করেছি।
৪. Spring Boot অ্যাপ্লিকেশন চালানো
Spring Boot অ্যাপ্লিকেশন চালানোর জন্য, @SpringBootApplication অ্যানোটেশন যুক্ত একটি মূল ক্লাস তৈরি করুন:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class WebScrapingApplication {
public static void main(String[] args) {
SpringApplication.run(WebScrapingApplication.class, args);
}
}
৫. Web Scraping Test করা
এখন আপনি Spring Boot অ্যাপ্লিকেশন চালানোর পর আপনার ব্রাউজারে http://localhost:8080/scrape/title বা http://localhost:8080/scrape/content পেজে গিয়ে ওয়েব স্ক্র্যাপিংয়ের রেজাল্ট দেখতে পারবেন।
সারাংশ
Spring Boot অ্যাপ্লিকেশন এ JSoup ব্যবহার করে ওয়েব স্ক্র্যাপিং খুবই সহজ। প্রথমে আপনি Spring Boot প্রোজেক্ট তৈরি করবেন, তারপর JSoup ডিপেনডেন্সি যোগ করে একটি Controller তৈরি করবেন যেখানে আপনি বিভিন্ন ওয়েব পেজ থেকে ডেটা স্ক্র্যাপ করবেন। এই টিউটোরিয়ালে দেখানো উদাহরণে, আমরা একটি ওয়েব পেজের টাইটেল এবং কনটেন্ট এক্সট্র্যাক্ট করে Spring Boot রেসপন্স হিসেবে রিটার্ন করেছি।
Read more