Dart:
HTML পার্স করা

কিভাবে:

Dart এর কোর লাইব্রেরিগুলিতে HTML পার্সিংয়ের জন্য কোন নির্মিত সহায়তা প্রদান করা হয় নি। তবে, html নামক থার্ড-পার্টি প্যাকেজ ব্যবহার করে আপনি HTML ডকুমেন্টগুলি পার্স এবং ম্যানিপুলেট করতে পারেন।

প্রথমে, html প্যাকেজটি আপনার pubspec.yaml ফাইলে যুক্ত করুন:

dependencies:
  html: ^0.15.0

তারপর, প্যাকেজটি আপনার Dart ফাইলে আমদানি করুন:

import 'package:html/parser.dart' show parse;
import 'package:html/dom.dart';

HTML যুক্ত একটি স্ট্রিং পার্স করে এবং ডেটা নিষ্কাষণের একটি মৌলিক উদাহরণ এখানে দেওয়া হল:

void main() {
  var htmlDocument = """
  <html>
    <body>
      <h1>Hello, Dart!</h1>
      <p>This is a paragraph in a sample HTML</p>
    </body>
  </html>
  """;

  // HTML স্ট্রিং পার্স করুন
  Document document = parse(htmlDocument);

  // ডেটা নিষ্কাষণ
  String title = document.querySelector('h1')?.text ?? "কোনো শিরোনাম পাওয়া যায়নি";
  String paragraph = document.querySelector('p')?.text ?? "কোনো অনুচ্ছেদ পাওয়া যায়নি";

  print('শিরোনাম: $title');
  print('অনুচ্ছেদ: $paragraph');
}

আউটপুট:

শিরোনাম: Hello, Dart!
অনুচ্ছেদ: This is a paragraph in a sample HTML

বাস্তব বিশ্বের ওয়েব পেজগুলির সাথে ইন্টারঅ্যাক্ট করতে, আপনি html পার্সিংকে http প্যাকেজ সহ (ওয়েব কন্টেন্ট আনতে) HTTP অনুরোধ দিয়ে সম্মিলন করতে পারেন। এখানে একটি দ্রুত উদাহরণ দেওয়া হল:

প্রথমে, http প্যাকেজের সাথে html যুক্ত করুন:

dependencies:
  html: ^0.15.0
  http: ^0.13.3

তারপর, ওয়েব থেকে একটি HTML পৃষ্ঠা আনুন এবং পার্স করুন:

import 'package:http/http.dart' as http;
import 'package:html/parser.dart' show parse;

void main() async {
  var url = 'https://example.com';
  
  // ওয়েবপেজটি আনুন
  var response = await http.get(Uri.parse(url));
  
  if (response.statusCode == 200) {
    var document = parse(response.body);

    // ধরুন পৃষ্ঠাটিতে আগ্রহের <h1> ট্যাগগুলি রয়েছে
    var headlines = document.querySelectorAll('h1').map((e) => e.text).toList();
    
    print('শিরোনামগুলি: $headlines');
  } else {
    print('অনুরোধ ব্যর্থ হয়েছে, স্থিতি: ${response.statusCode}.');
  }
}

নোট: উপরে দেখানো ওয়েব স্ক্রেপিং কৌশলটি দায়বদ্ধতার সাথে এবং ওয়েবসাইটের পরিষেবা শর্তাবলীর মান্যতা সাপেক্ষে ব্যবহার করা উচিত।