Διευθύνσεις URL και Συμβολοσειρές ερωτημάτων
URLs και Συμβολοσειρές Ερωτήματος
Το επίπεδο URL υλοποιεί ανάλυση σε στυλ WHATWG — την ίδια συμπεριφορά που εφαρμόζουν τα προγράμματα περιήγησης — ώστε οι URLs που εξάγονται από έγγραφα να επιλύονται και να κανονικοποιούνται όπως θα συνέβαινε σε έναν πραγματικό πράκτορα χρήστη.
Ανάλυση και Επαλήθευση
URL.parse() αναλύει μια απόλυτη ή σχετική URL; URL.can_parse() απαντά στην εγκυρότητα χωρίς να κατασκευάζει αντικείμενο. Τα σφάλματα ανάλυσης προκαλούν την εξαίρεση τύπου URLParseError.
Συμβολοσειρές Ερωτήματος
URLSearchParams διαβάζει και επεξεργάζεται παραμέτρους ερωτήματος: append(), get(), get_all(), has() και delete() καλύπτουν την ολοκληρωμένη διαδρομή, διατηρώντας την σημασιολογία πολλαπλών τιμών.
Συμβουλές και Καλές Πρακτικές
- Χρησιμοποιήστε το
can_parse()για φτηνή επικύρωση στα φίλτρα; κατασκευάστε με τοparse()μόνο όταν χρειάζεστε τα στοιχεία - Θυμηθείτε ότι τα κλειδιά ερωτήματος επαναλαμβάνονται — χρησιμοποιήστε το
get_all()όταν μια παράμετρος μπορεί να εμφανιστεί περισσότερες από μία φορές - Αντιμετωπίστε το
URLParseErrorαντί να προεπαληθεύετε με κανονικές εκφράσεις
Συνηθισμένα προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
| Η σχετική URL δεν μπορεί να αναλυθεί | Δεν έχει δοθεί βάση | Παρέχετε τη βάση σύμφωνα με URL.parse() |
| Επιστρέφεται μόνο η πρώτη τιμή ερωτήματος | Χρησιμοποιήθηκε get() σε επαναλαμβανόμενο κλειδί | Χρησιμοποιήστε get_all() |
| Παράξενοι χαρακτήρες στα στοιχεία | Κανονικοποίηση WHATWG σε δράση | Αναμενόμενο — αυτό ταιριάζει με τη συμπεριφορά του προγράμματος περιήγησης |
FAQ
Η ανάλυση ακολουθεί το πρότυπο WHATWG;
Ναι — η κανονικοποίηση και ο διαχωρισμός των στοιχείων αντικατοπτρίζουν τη συμπεριφορά του προγράμματος περιήγησης.
Πώς μπορώ να ελέγξω ένα URL χωρίς να το αναλύσω;
URL.can_parse() επιστρέφει εγκυρότητα χωρίς δημιουργία αντικειμένου.
Μπορώ να επεξεργαστώ μια συμβολοσειρά ερωτήματος επιτόπου;
Ναι — URLSearchParams υποστηρίζει append/get/has/delete κυκλικές κλήσεις.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
URL.parse | Αναλύστε ένα URL |
URL.can_parse | Έλεγχος εγκυρότητας χωρίς κατασκευή |
URLSearchParams.append | Προσθήκη παραμέτρου ερωτήματος |
URLSearchParams.get_all | Όλες οι τιμές για ένα κλειδί |
URLParseError | Αποτυχία ανάλυσης τύπου |