Comment faire pour extraire les liens d'une page web à l'aide de lxml, XPath et Python?
J'ai cette requête xpath:
/html/body//tbody/tr[*]/td[*]/a[@title]/@href
Extrait tous les liens avec l'attribut title - et donne le href
dans FireFox Xpath vérificateur d'add-on.
Cependant, je n'arrive pas à l'utiliser avec lxml
.
from lxml import etree
parsedPage = etree.HTML(page) # Create parse tree from valid page.
# Xpath query
hyperlinks = parsedPage.xpath("/html/body//tbody/tr[*]/td[*]/a[@title]/@href")
for x in hyperlinks:
print x # Print links in <a> tags, containing the title attribute
Ce qui ne produit pas le résultat de lxml
(liste vide).
Comment pourrait-on saisir le href
texte (lien) d'un lien hypertexte contenant le titre de l'attribut avec lxml
sous Python?
- Le document d'analyse ont un espace de noms (xmlns) ensemble?
Vous devez vous connecter pour publier un commentaire.
J'ai été capable de le faire fonctionner avec le code suivant:
Firefox ajoute des balises html pour le html quand il rend, en faisant le xpath retourné par l'outil firebug incohérente avec le html renvoyé par le serveur (et ce urllib/2 sera de retour).
Retrait de la
<tbody>
balise ne fait généralement l'affaire.