URL et chaînes de requête
URL et chaînes de requête
La couche URL implémente l’analyse de type WHATWG — le même comportement que les navigateurs — de sorte que les URL extraites des documents sont résolues et normalisées comme elles le seraient dans un véritable agent utilisateur.
Analyse et validation
URL.parse() analyse une URL absolue ou relative; URL.can_parse() indique la validité sans construire d’objet. Les échecs d’analyse déclenchent l’exception typée URLParseError.
Chaînes de requête
URLSearchParams lit et modifie les paramètres de requête: append(), get(), get_all(), has() et delete() couvrent le cycle complet, en préservant la sémantique à valeurs multiples.
Conseils et bonnes pratiques
- Utilisez
can_parse()pour une validation peu coûteuse dans les filtres; construisez avecparse()uniquement lorsque vous avez besoin des composants - Rappelez-vous que les clés de requête peuvent se répéter — utilisez
get_all()lorsqu’un paramètre peut apparaître plusieurs fois - Capturez
URLParseErrorplutôt que de pré-valider avec des expressions régulières
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| L’URL relative ne parvient pas à être analysée | Aucune base fournie | Fournissez la base selon URL.parse() |
| Seule la première valeur de requête est renvoyée | Utilisé get() sur une clé répétée | Utilisez get_all() |
| Caractères bizarres dans les composants | Normalisation WHATWG en action | Attendu — cela correspond au comportement du navigateur |
FAQ
L’analyse suit-elle la norme WHATWG?
Oui — la normalisation et la division des composants reflètent le comportement du navigateur.
Comment vérifier une URL sans l’analyser?
URL.can_parse() renvoie la validité sans construction d’objet.
Puis-je modifier une chaîne de requête en place?
Oui — URLSearchParams prend en charge les allers-retours append/get/has/delete.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
URL.parse | Analyser une URL |
URL.can_parse | Vérification de validité sans construction |
URLSearchParams.append | Ajouter un paramètre de requête |
URLSearchParams.get_all | Toutes les valeurs d’une clé |
URLParseError | Échec d’analyse typée |