Δωρεάν βιβλιοθήκη Swift για ανάλυση και διαχείριση δεδομένων HTML
Βιβλιοθήκη Swift ανοιχτού κώδικα για ανάλυση HTML/XML που παρέχει ένα καθαρό API Swift για την ανάλυση και την περιήγηση εγγράφων HTML και XML με ευκολία.
Τι είναι το Kanna;
Εάν έχετε ποτέ δημιουργήσει μια εφαρμογή Swift που χρειάζεται να εξάγει δεδομένα από ιστοσελίδες, να αναλύει απαντήσεις API σε XML ή να συλλέγει δομημένο περιεχόμενο, πιθανότατα έχετε αντιμετωπίσει την πρόκληση της εργασίας με ακατέργαστες συμβολοσειρές HTML και XML. Η τυπική βιβλιοθήκη του Swift δεν περιλαμβάνει έναν εγγενή, εργονομικό αναλυτή για αυτές τις μορφές, και εδώ έρχεται η Kanna για να λύσει το πρόβλημα. Στην ουσία, η Kanna παρέχει ένα καθαρό API Swift για την ανάλυση και την περιήγηση εγγράφων HTML και XML. Πίσω από τις σκηνές, αναθέτει το βαρέως φορτίου στην libxml2, πράγμα που σημαίνει ότι λαμβάνετε εξαιρετική απόδοση ανάλυσης χωρίς να χρειάζεται να επαναυλοποιήσετε πολύπλοκους κανόνες γραμματικής μόνοι σας.
Το Kanna ξεχωρίζει στο οικοσύστημα Swift για την απλότητα και τη δύναμή του. Με το διαισθητικό API του, μπορείτε να περιηγηθείτε και να χειριστείτε έγγραφα HTML/XML χρησιμοποιώντας γνωστές μεθόδους ερωτημάτων όπως XPath 1.0 και επιλεκτές CSS3. Είτε δημιουργείτε έναν web scraper, εξάγετε δεδομένα από RSS feeds, είτε επεξεργάζεστε αρχεία ρυθμίσεων XML, το Kanna παρέχει τα εργαλεία που χρειάζεστε. Η υποστήριξη πολλαπλών πλατφορμών είναι ένα από τα πιο ελκυστικά χαρακτηριστικά του Kanna. Λειτουργεί σε macOS, iOS, tvOS, watchOS και ακόμη και σε Linux. Τα XPath 1.0 και οι επιλεκτές CSS3 σας προσφέρουν δύο ισχυρούς, βιομηχανικά πρότυπους τρόπους για να ερωτήσετε έγγραφα. Η διπλή υποστήριξή του τόσο για επιλεκτές CSS3 όσο και για XPath 1.0 το καθιστά αρκετά ευέλικτο για να χειριστεί ό,τι από απλή εξαγωγή HTML μέχρι σύνθετη επεξεργασία XML με ονομαστικούς χώρους. Είτε δημιουργείτε μια εφαρμογή iOS που καταναλώνει RSS feed, έναν διακομιστή Vapor που συλλέγει τιμές ανταγωνιστών, είτε ένα εργαλείο γραμμής εντολών που μετατρέπει δεδομένα XML, το Kanna σας παρέχει τα εργαλεία για να ολοκληρώσετε τη δουλειά αξιόπιστα και κομψά.
Ξεκινώντας με το Kanna
Ο συνιστώμενος και πιο εύκολος τρόπος για να εγκαταστήσετε το Kanna είναι μέσω του CocoaPods. Παρακαλώ χρησιμοποιήστε την παρακάτω εντολή για μια ομαλή εγκατάσταση.
Εγκατάσταση Kanna μέσω Carthage
// add the following line to your Podfile:
use_frameworks!
pod 'Kanna', '~> 5.2.2'
// Then run:
$ pod install
Εγκατάσταση Kanna μέσω CocoaPods
// If you prefer Carthage, add this line to your Cartfile:
github "tid-kijyun/Kanna" ~> 5.2.2
Μπορείτε επίσης να το εγκαταστήσετε χειροκίνητα· κατεβάστε τα τελευταία αρχεία έκδοσης απευθείας από το αποθετήριο GitHub.
Ανάλυση εγγράφων HTML μέσω Swift
Η ανοιχτού κώδικα βιβλιοθήκη Kanna περιλαμβάνει υποστήριξη για τη φόρτωση και την ανάλυση εγγράφων HTML μέσα σε εφαρμογές Swift. Η πιο κοινή περίπτωση χρήσης για αυτήν την ανάλυση HTML, είτε ληφθείσα από το διαδίκτυο είτε δημιουργημένη προγραμματιστικά. Ακολουθεί ένα απλό παράδειγμα που δείχνει πώς οι προγραμματιστές λογισμικού μπορούν να χρησιμοποιήσουν τη λειτουργία HTML που δέχεται μια ακατέργαστη συμβολοσειρά HTML, την κωδικοποιεί και επιστρέφει ένα αντικείμενο εγγράφου που περιέχει ιδιότητες όπως .title και .body, παρέχοντάς τους γρήγορη πρόσβαση σε κοινά στοιχεία χωρίς να χρειάζεται selector.
Πώς να Αναλύσετε HTML χρησιμοποιώντας κωδικοποίηση UTF-8 μέσω βιβλιοθήκης Swift;
import Kanna
// A sample HTML string representing a webpage
let htmlString = """
My Tech Blog
Καλώς ήρθατε στο Swift Parsing
Το Kanna κάνει την ανάλυση HTML εύκολη και κομψή.
View on GitHub
"""
// Parse the HTML string using UTF-8 encoding
if let doc = try? HTML(html: htmlString, encoding: .utf8) {
// Access the document title directly via a convenience property
print(doc.title ?? "No title found")
// Output: My Tech Blog
// Access the full body text
print(doc.body?.text ?? "No body")
}
Υποστήριξη ερωτημάτων επιλεκτών CSS3
Η βιβλιοθήκη Kanna περιλαμβάνει πλήρη υποστήριξη για CSS3 Selector, επιτρέποντας στους προγραμματιστές να χρησιμοποιούν οικεία σύνταξη CSS για την εύρεση στοιχείων. Η υποστήριξη των CSS selectors της Kanna σας επιτρέπει να χρησιμοποιείτε την ίδια σύνταξη selector που θα γράφατε σε ένα φύλλο στυλ ή στο querySelectorAll της JavaScript. Αυτό το καθιστά πολύ διαισθητικό για όποιον προέρχεται από το web development. Το παρακάτω παράδειγμα δείχνει πώς οι χρήστες μπορούν να επιλέξουν στοιχεία HTML και να επαναλάβουν πάνω σε πολλαπλά στοιχεία μέσα σε εφαρμογές Swift.
Πώς να Επιλέξετε Πολλαπλά Στοιχεία HTML & Να Εξάγετε Κείμενο από Αυτά μέσω βιβλιοθήκης Swift;
import Kanna
let htmlString = """
-
Βιβλίο Swift
$39.99
-
Οδηγός Xcode
$24.99
-
Βασικά iOS
$49.99
"""
if let doc = try? HTML(html: htmlString, encoding: .utf8) {
// Select all elements with class "product" inside a "ul"
for product in doc.css("ul.product-list li.product") {
// Extract text from nested span elements using child selectors
let name = product.css("span.name").first?.text ?? "Unknown"
let price = product.css("span.price").first?.text ?? "N/A"
// Access HTML attributes using subscript notation
let productId = product["data-id"] ?? "No ID"
print("[\(productId)] \(name) — \(price)")
}
}
Υποστήριξη ερωτημάτων XPath 1.0
Η βιβλιοθήκη Kanna περιλαμβάνει υποστήριξη για ερωτήματα XPath 1.0 μέσα σε εφαρμογές Swift. Το XPath παρέχει έναν πιο ισχυρό και ευέλικτο τρόπο πλοήγησης μέσω στοιχείων και χαρακτηριστικών σε ένα έγγραφο XML/HTML. Είναι ιδιαίτερα χρήσιμο για σύνθετες δομές εγγράφων. Οι εκφράσεις XPath μπορούν να διασχίζουν έγγραφα με τρόπους που οι CSS selectors δεν μπορούν, όπως η εύρεση στοιχείων βάσει της θέσης τους, των σχέσεων γονέα-παιδιού ή της σύνθετης αντιστοίχισης κειμένου. Είναι απαραίτητο για την ανάλυση XML και την πολύπλοκη εξόρυξη HTML.
Ανάλυση και επικύρωση XML μέσω Swift
Πέρα από την βασική ανάλυση HTML, η ανοιχτού κώδικα βιβλιοθήκη Kanna προσφέρει ισχυρές δυνατότητες διαχείρισης XML. Αυτό περιλαμβάνει σωστή επικύρωση της δομής XML και διαχείριση χαρακτηριστικών. Όταν εργάζεστε με δομημένα δεδομένα, χρειάζεστε περισσότερα από απλή εξαγωγή στοιχείων. Η Kanna παρέχει πλήρη πρόσβαση σε έγγραφα XML, συμπεριλαμβανομένων σχολίων, οδηγιών επεξεργασίας και μεταδεδομένων εγγράφου.
Πώς να Εκτελέσετε Ανάλυση XML μέσα σε Εφαρμογές Swift;
import Kanna
let xmlString = """
Swift Developer News
-
Kanna 6.0 Released with Swift 6 Support
Alex Johnson
Mon, 26 Jun 2024 00:00:00 GMT
-
New Features in Swift 5.10
Maria Garcia
Tue, 15 Apr 2024 00:00:00 GMT
"""
if let doc = try? Kanna.XML(xml: xmlString, encoding: .utf8) {
// Define a namespace mapping: prefix -> URI
// The prefix you use here ("dc") can be anything; it maps to the namespace URI
let namespaces = [
"dc": "http://purl.org/dc/elements/1.1/"
]
// Query elements in the "dc" namespace using the prefix
for item in doc.xpath("//item", namespaces: namespaces) {
let title = item.at_xpath("title")?.text ?? "No title"
let creator = item.at_xpath("dc:creator", namespaces: namespaces)?.text ?? "Unknown"
let pubDate = item.at_xpath("pubDate")?.text ?? "No date"
print("Title: \(title)")
print("Author: \(creator)")
print("Published: \(pubDate)\n")
}
}