PyQuery

Manipuler du html et du xml à la jQuery en Python

Olivier Lauzanne - PyCONFr 2009

jQuery

Sélecteurs CSS

Pourquoi ? Parce que xpath et xslt sont trop compliqués et verbeux. CSS est simple et connu de tous les développeurs web.

Par exemple:

a.title {
  color: red;
}

Sélecteurs CSS

Encore un peu de jQuery

On peut faire la même chose en jQuery:

$('a.title').css('color', 'red')

Ou on peut ajouter quelque chose après tous les titres:

$('a.title').after("don't forget PyCONFr")

Pourquoi PyQuery ?

Utiliser PyQuery

Si vous connaissez jQuery c'est très simple:

>>> from pyquery import PyQuery as pq
>>> d = pq(url='http://reddit.com/r/python')
>>> d('a.title').css('color', 'red').after("don't forget PyCONFr")
>>> str(d)
--> la chaine qui contient tout le html de la page

Récupérer les titres de reddit

On peut facilement le faire avec un petit script:

from pyquery import PyQuery as pq

d = pq('http://reddit.com/r/python')
for title in d('a.title'):
    print pq(title).text() + '\n'

Les liens qui parlent de Python

from pyquery import PyQuery as pq

d = pq('http://reddit.com/r/programming')
for title in d('a.title'):
    a = pq(title)
    if 'python' in a.text().lower():
        print a.text()
        print a.attr('href') + '\n'

Utilisations possibles

Le coeur de PyQuery

Développement

Merci. Vous avez des questions ?