Tutoriels Python pour rampants des pages HTML à l’aide de modules de requêtes ou lxml

Source : Internet
Auteur : utilisateur

Tags : Analyse test de beauté 4,4 Retirez code ROM importation

Analyse Web
Sites Web utilisent des descriptions de HTML, ce qui signifie que chaque page Web est un document structuré. Il est parfois utile d’obtenir des données de tout en conservant sa structure. Sites Web ne fournissent pas toujours leurs données dans des formats faciles à manipuler, tels que CSV ou JSON.

C’est le moment pour les apparitions d’analyse Web. Analyse Web est la pratique consistant à utiliser un programme informatique pour recueillir et organiser les données de la page Web dans le format désiré tout en préservant sa structure.

Lxml et demandes
Lxml (http://lxml.de/) est une bibliothèque de belle extension utilisée pour analyser rapidement les documents XML et HTML, même si les balises en cours de traitement sont très confus. On remplacera également le module urllib2 intégré avec le module de requêtes (http://docs.python-requests.org/en/latest/#) car il est plus rapide et plus lisible. Vous pouvez installer ces deux modules en utilisant le PIP install lxml avec la commande de demandes d’installation PIP.

Commençons par l’importation suivante :

from lxml import htmlimport requests

Ensuite nous utiliser Requests.get pour obtenir nos données à partir d’une page Web, analyser en utilisant un module HTML et enregistrer les résultats dans l’arbre.

page = requests.get(‘http://econpy.pythonanywhere.com/ex/001.html‘)tree = html.fromstring(page.text)

Arbre contient à présent l’intégralité du fichier HTML dans une structure d’arbre élégant, et nous pouvons y accéder de deux manières : les sélecteurs CSS et XPath. Dans cet exemple, nous choisirons l’ancien.

XPath est un moyen de localiser des informations dans des documents structurés, tels que HTML ou XML. Une bonne introduction à XPath voir W3Schools.

Il existe de nombreux outils pour obtenir le XPath de l’élément, comme FireBug de Firefox ou inspecteur Chrome. Si vous utilisez Chrome, vous pouvez cliquez-droit sur l’élément, sélectionnez « Inspecter élément », mettez en surbrillance le code, faites un clic droit à nouveau et sélectionnez « Copy XPath ».

Après une rapide analyse, nous voyons que les données sur la page sont enregistrées en deux éléments, l’un est le div « acheteur-Name » et l’autre est la durée de « point-prix » :

<div title="buyer-name">Carson Busses</div><span class="item-price">$29.95</span>

Sachant cela, nous pouvons créer la requête XPath correcte et utiliser la fonction XPath de lxml, comme suit :

#这将创建buyers的列表 : acheteurs = Tree.xpath ("//div[@title = « Nom d’acheteur »] / text () ') #这将创建prices的列表 : prix = Tree.xpath ('/ / span [ @Class = « Item-prix »] / text () ')

Voyons ce que nous avons Got :

print ‘Buyers: ‘, buyersprint ‘Prices: ‘, pricesBuyers: [‘Carson Busses‘, ‘Earl E. Byrd‘, ‘Patty Cakes‘,‘Derri Anne Connecticut‘, ‘Moe Dess‘, ‘Leda Doggslife‘, ‘Dan Druff‘,‘Al Fresco‘, ‘Ido Hoe‘, ‘Howie Kisses‘, ‘Len Lease‘, ‘Phil Meup‘,‘Ira Pent‘, ‘Ben D. Rules‘, ‘Ave Sectomy‘, ‘Gary Shattire‘,‘Bobbi Soks‘, ‘Sheila Takya‘, ‘Rose Tattoo‘, ‘Moe Tell‘] Prices: [‘$29.95‘, ‘$8.37‘, ‘$15.26‘, ‘$19.25‘, ‘$19.25‘,‘$13.99‘, ‘$31.57‘, ‘$8.49‘, ‘$14.47‘, ‘$15.86‘, ‘$11.11‘,‘$15.98‘, ‘$16.27‘, ‘$7.50‘, ‘$50.85‘, ‘$14.26‘, ‘$5.68‘,‘$15.00‘, ‘$114.07‘, ‘$10.09‘]

Félicitations ! Nous avons réussi à analyser toutes les données que nous voulons partir d’une page Web par le biais de lxml et demande. Nous garder en mémoire sous forme de listes. Maintenant, nous pouvons faire toutes sortes de choses cool à ce sujet : nous pouvons l’analyser à l’aide de Python, ou nous pouvons l’enregistrer dans un fichier et partagez-la avec le monde.

Nous pouvons considérer certaines des idées plus fraîches : modifier ce script pour parcourir les pages restantes dans le dataset ou utilisation multithreading pour substituer l’app pour augmenter sa vitesse.

Tutoriels Python pour rampants des pages HTML à l’aide de modules de requêtes ou lxml

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.