Maison > développement back-end > Tutoriel Python > Stracage des pages Web en Python avec une belle soupe: recherche et modification DOM

Stracage des pages Web en Python avec une belle soupe: recherche et modification DOM

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-03-08 10:36:11
original
667 Les gens l'ont consulté

Scraping Webpages in Python With Beautiful Soup: Search and DOM Modification

Ce tutoriel s'appuie sur l'introduction précédente à la belle soupe, en se concentrant sur la manipulation de Dom au-delà de la simple navigation sur les arbres. Nous explorerons des méthodes et techniques de recherche efficaces pour modifier la structure HTML.

Une méthode de recherche DOM commune est extend(). Cette méthode ajoute une liste d'éléments à une balise, préservant leur commande d'origine. Cependant, le simple fait de s'étendre avec extend() peut entraîner l'ajout d'éléments comme des chaînes plutôt que des balises HTML appropriées.

import requests
from bs4 import BeautifulSoup

req = requests.get('https://en.wikipedia.org/wiki/Python_(programming_language)')
soup = BeautifulSoup(req.text, "lxml")

new_soup = BeautifulSoup("<ol></ol>", "lxml")

new_soup.ol.extend(['
Copier après la connexion
  • ' + heading.text + '
  • ' for heading in soup.find_all('h2')]) print(new_soup.ol.contents) print(new_soup.find_all('li'))

    L'exemple ci-dessus démontre cet ajout basé sur une chaîne. Pour ajouter des éléments comme balises HTML appropriées, utilisez la méthode wrap(). Inversement, la méthode unwrap() supprime les balises tout en préservant leur contenu. Illustrons un exemple de suppression des étiquettes audacieuses et italiques:

    soup = BeautifulSoup("<p>We will <i>try</i> to get rid of <b>tags</b> that make text <b>bold</b> or <i>italic</i>. The content <i>within</i> the <b>tags</b> should still be <b>preserved</b>.</p>", "lxml")
    
    for unwanted_tag in soup.find_all(["b", "i"]):
        unwanted_tag.unwrap()
    
    print(soup.p.contents)
    soup.p.smooth()
    print(soup.p.contents)
    Copier après la connexion

    Ici, unwrap() supprime les balises indésirables. Notez qu'après avoir retiré les balises, les fragments de texte sont stockés comme NavigableStrings. La méthode smooth() concaténe ces chaînes en une seule chaîne, simplifiant la sortie.

    Conclusion

    Ces tutoriels fournissent une base pour le grattage Web avec une belle soupe. Vous avez appris à analyser les pages Web, à extraire des données, à modifier la structure HTML et à enregistrer les résultats localement. Cela vous permet de traiter et de manipuler efficacement le contenu Web pour diverses applications.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal