PyQuery le jQuery de Python

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..

Démarrer avec PyQuery

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

Manipulation d'attributs à l'aide de PyQuery

Voyons maintenant comment lire les attributs en utilisant le PyQuery bibliothèque. Supposons que vous ayez un élément HTML comme indiqué:

  • Roy
  • Hari

Utilisez le PyQuery bibliothèque pour lire le contenu HTML ci-dessus.

ulMain = pq ("
  • Roy
  • Hari
")

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.

  • Roy
  • Hari

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')

Gestion des CSS à l'aide de PyQuery

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.

  • Roy
  • Hari

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.

  • Roy
  • Hari

Créer et ajouter des éléments

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)

Recherche d'éléments à l'aide de PyQuery

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

Insérer un élément à l'intérieur du HTML

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 monde

Bienvenue

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

Envelopper

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.