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>שלום, Dart!</h1>
<p>זהו פסקה בדוגמת 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');
}
פלט:
כותרת: שלום, Dart!
פסקה: זהו פסקה בדוגמת 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}.');
}
}
שים לב: טכניקת הסקרייפינג שהוצגה לעיל צריכה להיעשות באחריות ובהתאם לתנאי השירות של האתר.