Dans ce tutoriel, vous allez voir PyQuery
, une bibliothèque Python qui vous permet de faire des requêtes jQuery sur des documents XML. En termes de syntaxe, cela ressemble beaucoup à jQuery, et si vous connaissez jQuery, il devrait être plus facile à suivre..
Pour commencer avec PyQuery
, installer le paquet Python en utilisant PIP.
pip installer pyquery
Une fois que vous avez installé PyQuery
, importez-le dans le programme Python.
à partir de pyquery import PyQuery en tant que pq
Commençons par un exemple élémentaire de son fonctionnement. Considérons le code HTML suivant:
Bonjour le monde
Passer le XML d'entrée au PyQuery
objet et vous devriez pouvoir lui appliquer des requêtes de style jQuery.
divMain = pq ("Bonjour le monde")
Assumer divMain
en tant qu'objet jQuery et imprimer le contenu HTML de la div.
print divMain ('# divMain'). html ()
Enregistrez les modifications et essayez d’exécuter le programme. Vous devriez avoir la sortie suivante:
Bonjour le monde
Pour accéder au Bonjour le monde
texte de l'intérieur de l'envergure, le code serait:
print divMain ('# divMain'). text ()
Enregistrez les modifications et essayez d’exécuter le code. Vous devriez avoir la sortie suivante:
Bonjour le monde
Voyons maintenant comment lire les attributs en utilisant le PyQuery
bibliothèque. Supposons que vous ayez un élément HTML comme indiqué:
Utilisez le PyQuery
bibliothèque pour lire le contenu HTML ci-dessus.
ulMain = pq ("
Essayons d'accéder à l'attribut ID du ulMain
ul.
print ulMain.attr ('id')
Enregistrez les modifications ci-dessus et essayez d’exécuter le programme Python. Vous devriez avoir une identité ulMain
imprimé sur le terminal.
Vous avez vu comment accéder à l'attribut ID de la ul ulMain
. Essayons de définir un nom de classe pour le même ulMain
élément. Pour spécifier un attribut de nom de classe, vous devez spécifier le nom de l'attribut et la valeur correspondante, comme indiqué:
ulMain.attr ('classe', 'testclass')
Imprimer le ulMain
objet et vous devriez avoir l'élément avec l'attribut de classe.
Vous pouvez également ajouter et supprimer des classes directement sans utiliser le attr
méthode. Pour ajouter une classe à l'élément, vous pouvez utiliser la méthode addClass
.
ulMain.addClass ('test')
Pour supprimer une classe existante de l'élément, vous pouvez utiliser le removeClass
méthode.
ulMain.removeClass ('test')
Outre les attributs, l'élément aurait certaines propriétés CSS. Pour ajouter ou modifier les propriétés CSS, vous pouvez utiliser le css
méthode et spécifiez les propriétés. Disons que vous voulez spécifier la hauteur dans le style de l'ul ulMain
. Le code suivant ajouterait les propriétés de style requises à l'élément.
ulMain.css ('hauteur', '100px')
Enregistrez les modifications ci-dessus et essayez d’exécuter le programme Python. Vous devriez avoir le ul ulMain
imprimé avec le nouveau style.
Pour ajouter plusieurs styles à l'élément, vous pouvez les spécifier comme suit:
ulMain.css ('height': '100px', 'width': '100px')
Exécutez le programme et vous devriez avoir les styles ajoutés à la ulMain
.
Lors de la création d'éléments dynamiques, vous devez créer de nouveaux éléments et les ajouter à l'élément parent existant où ils seront rendus. Voyons comment créer et ajouter des éléments en utilisant PyQuery
.
Supposons que vous avez un conteneur principal appelé divMain
.
divMain = pq ("")
Créons un nouvel élément span en utilisant PyQuery
.
span = pq ('Bonjour le monde')
Ajouter des propriétés CSS à la span.
span.css ('color': 'blue', 'font-weight': 'bold')
PyQuery
fournit une méthode pour ajouter des éléments aux éléments existants. Vous pouvez utiliser le ajouter
méthode pour ajouter l'élément span à la div divMain
. Voici le code:
divMain.append (span) print divMain
Enregistrez les modifications et exécutez le programme. Vous devriez pouvoir voir le divMain
imprimé avec la durée nouvellement créée qui y est ajoutée.
Bonjour le monde
Vous avez utilisé la méthode append pour ajouter le span à la div. Vous avez une autre méthode alternative appelée ajouter à
qui ajouterait les nœuds à la valeur. Dans le cas ci-dessus, vous pouvez utiliser la méthode comme suit:
span.appendTo (divMain)
PyQuery
fournit des méthodes pour rechercher des enfants, les éléments suivants, les éléments les plus proches, etc. Il fournit également des méthodes pour filtrer et rechercher des éléments dans un nœud particulier.
Supposons que vous avez un élément HTML particulier, comme indiqué:
- Jade
- Jim
Bonjour le monde
Ajoutez le code HTML suivant au PyQuery
objet:
divMain = pq (""+"")"+""+""+"
""- Jade
"+"- Jim
"+""+"Bonjour le monde"""+"
Utilisons PyQuery
trouver les enfants du div divMain
. Ajoutez la ligne de code suivante pour imprimer les enfants de divMain
.
print divMain.children ()
Lors de l'exécution du programme, vous devriez avoir la sortie suivante:
- Jade
- Jim
Bonjour le monde
Pour trouver l'élément le plus proche d'un élément, vous pouvez utiliser la méthode le plus proche
. Pour trouver l'élément div le plus proche de l'étendue, le code serait:
print divMain ('span'). le plus proche ('div')
La commande ci-dessus renverrait la sortie suivante:
Bonjour le monde
UNE trouver
méthode est également disponible pour trouver les éléments. Par exemple, pour trouver une étendue dans le divMain
, vous devez appeler la méthode comme indiqué:
print divMain.find ('span')
La commande ci-dessus renverrait la durée.
Bonjour le monde
Tandis que ajouter
effectue le travail d’ajout d’éléments aux éléments existants; il est parfois nécessaire d’insérer des éléments après ou avant certains éléments. PyQuery
fournit une méthode pour insérer des éléments avant ou après d'autres éléments.
Définissons un nouvel élément de paragraphe à insérer après la plage dans le divMain
div.
p = pq ('Bienvenue
')
Appeler le insertAfter
méthode sur le paragraphe p
élément à insérer après la durée.
p.insertAfter (divMain ('span')) print divMain
Enregistrez les modifications ci-dessus et exécutez le programme Python. Vous devriez avoir la sortie suivante:
- Jade
- Jim
Bonjour le mondeBienvenue
De même, vous avez le insérerAvant
méthode, qui insère avant l'élément. Modifiez le code comme indiqué ci-dessous pour utiliser le insérerAvant
méthode:
p.insertBefore (divMain ('span')) print divMain
Enregistrez les modifications et exécutez le programme. Vous devriez pouvoir voir la sortie suivante sur le terminal:
- Jade
- Jim
Bienvenue
Bonjour le monde
Dans ce tutoriel, vous avez vu comment commencer à utiliser PyQuery
, une bibliothèque Python qui vous permet de faire des requêtes jQuery sur des documents XML. Vous avez vu comment manipuler les attributs et les styles CSS des éléments HTML.
Vous avez appris à créer et à ajouter des éléments à des éléments existants et à insérer de nouveaux éléments avant et après les éléments. Ce que vous avez vu dans ce didacticiel n’est que la pointe de l’iceberg, et la bibliothèque a beaucoup plus à offrir.
Pour plus d'informations sur l'utilisation de cette bibliothèque, je vous recommande de lire la documentation officielle. Faites-nous savoir vos suggestions dans les commentaires ci-dessous.